![]() |
|
|
![]()
|
|
| Attack |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 20.7.2006 Репутация: нет Всего: нет |
VS2010
Win7 64bit dll 32bit DLL:
Вопрос: почему функция назвалась "_MyFunction@0", а не "MyFunction"? |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 3 Всего: 459 |
Это называется декорация имен. Перечисляются параметры и их размер. Если добавить extern "C", то @0 исчезнет. Еще декорация зависит от соглашения о вызовах. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 1 Всего: 39 |
используй DEF файл чтобы убрать декорацию имен он примерно выглядит так
Дело в том что VS при соглашении вызова __stdcall делает не "MyFunction", а "_MyFunction@0", при соглашении вызова __cdecl она делает наоборот "MyFunction". Это сообщение отредактировал(а) Dem_max - 19.9.2010, 18:19 -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| Attack |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 20.7.2006 Репутация: нет Всего: нет |
Спасибо, про декорацию понял. Попытался от неё избавится с помощью def файла, но линкер его почему то игнорирует:
Вот что говорит линкер при компиляции:
Добавлено: Интересно, линкер пропускает строчку
однако когда я указал DLL.def файл у свойствах проекта "Проект->Свойства->Компоновщик->Ввод->Файл определения модуля" (Project Properties->Linker->Input->Module Definition File) всё нормально скомпилировалось и функция в экспорте назвалась "MyFunction" Это сообщение отредактировал(а) Attack - 20.9.2010, 08:21 |
||||||
|
|||||||
![]()
|
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |