Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
ronniko
16 / 16 / 0
Регистрация: 13.11.2009
Сообщений: 65
1

После компиляции dll в vc++ 2008 имя функции вот такое ?Add@MyMathFuncs@MathFuncs@@SAJJ@Z. Почему?

06.03.2011, 14:11. Просмотров 1074. Ответов 3
Метки нет (Все метки)

Я ожидал имя в dll Add@MyMathFuncs@MathFuncs
Но не такое ?Add@MyMathFuncs@MathFuncs@@SAJJ@Z
Вот код mydll.h и mydll.cpp:

in mydll.h
C++
1
2
3
4
5
6
7
8
9
10
extern "C" namespace MathFuncs 
{
    extern "C" class MyMathFuncs
    {
    public:
        // Returns a + b
    static __declspec(dllexport)  long Add( long a);
        
        };
}
in mydll.cpp
C++
1
2
3
4
extern "C" namespace MathFuncs
{
     long MyMathFuncs::Add( long a)
    {
Добавлено через 7 минут
Я делал и без extern "C". Но все равно то же самое билибирдовое имя.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2011, 14:11
Ответы с готовыми решениями:

VC++ 2008 как изменить свойства компиляции чтобы из exe была сделана dll?
Как сделать dll я знаю. А вот как пример (работающий) который компилиться как exe сделать dll? ...

почему в функции add не работает gets_s?
/* Записи в линейном списке содержат ключевое поле типа *char(строка символов). Сформировать...

После перепрошивки БИОС вот такое сообщение вылазит CMOS Checksum Bad
Всем привет. Несколько раз перепрошивал БИОС и после каждой перепрошивки после перезагрузки...

Вот такое вот кажется лёгкое задание но не как не могу решить.
задание 223(В,И)Картинки загружайте на форум, во избежание их удаления или потери на сторонних...

Не вылазит черное окно консольного приложения после компиляции (Microsoft Visual C++ 2008)
Доброго времени суток! Только что поставил Microsoft Visual C++ 2008, код написал, скомпилировало,...

3
bigredcat
371 / 318 / 32
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
06.03.2011, 15:54 2
Почему так Формат внутреннего имени C++. Декорирование имен не стандартизировано. Каждый делает как хочет. И даже один и тот же в разных версия компиляторов может это делать по разному.
Решение - создать def-файл
LIBRARY "mydll"
EXPORTS
Add
1
ronniko
16 / 16 / 0
Регистрация: 13.11.2009
Сообщений: 65
06.03.2011, 15:58  [ТС] 3
А можно по подробнее и понятнее расказать об этом?
Решение - создать def-файл
LIBRARY "mydll" - что это значит LIBRARY "mydll.cpp"? или LIBRARY "mydll.dll"
EXPORTS - где это писать в mydll.cpp или mydll.h?
Add
0
bigredcat
371 / 318 / 32
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
06.03.2011, 16:00 4
Файлы определения модуля (DEF)

Проект->Добавить новый элемент далее в окне Visual C++->Код->Файл определения модуля.
Создаем файл mylib.def и в нем пишем
LIBRARY "mylib.dll"
EXPORTS
Add
1
06.03.2011, 16:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2011, 16:00

asp - xml - vb dll - html вот такая вот компания и что с ней делать
как из асп создать хмл-файл, передающий информацию в vb-dll, там она анализируется и результат...

Почему после компиляции не запускается программа ?
Доброго времени суток. Проблема следующая: программа тестирования обращается к xml-файлу. Без его...

Большое количество .dll файлов после компиляции в проекте Debug/Release
В общем, после компиляции проекта в папке debug/release появляется большое количество .dll файлов...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru