| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > DLL и лишние символы в именах экспортных функций |
| Автор: Attack 19.9.2010, 17:15 | ||
| VS2010 Win7 64bit dll 32bit DLL:
Вопрос: почему функция назвалась "_MyFunction@0", а не "MyFunction"? |
| Автор: Dem_max 19.9.2010, 18:18 | ||
используй DEF файл чтобы убрать декорацию имен он примерно выглядит так
Дело в том что VS при соглашении вызова __stdcall делает не "MyFunction", а "_MyFunction@0", при соглашении вызова __cdecl она делает наоборот "MyFunction". |
| Автор: Attack 19.9.2010, 22:23 | ||||||
Спасибо, про декорацию понял. Попытался от неё избавится с помощью def файла, но линкер его почему то игнорирует:
Вот что говорит линкер при компиляции:
Добавлено: Интересно, линкер пропускает строчку
однако когда я указал DLL.def файл у свойствах проекта "Проект->Свойства->Компоновщик->Ввод->Файл определения модуля" (Project Properties->Linker->Input->Module Definition File) всё нормально скомпилировалось и функция в экспорте назвалась "MyFunction" |