| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > __stdcall и имена функций |
| Автор: BorisVorontsov 27.1.2007, 13:26 | ||||||
| Есть библиотка MyLib, экспортирующая __stdcall функции MyFunctionOne и MyFunctionTwo. Есть MyLib.lib, с перечнем функций, экспортируемых библиотекой (то есть MyFunctionOne и MyFunctionTwo). В проекте на VC++ 6 поключаю MyLib.lib, например, так:
И декларирую функции так:
На свое удивление получаю:
Внимание, вопрос: Как заставить VC++ не портить имена функций с конвенцией __stdcall? |
| Автор: Andrey44 27.1.2007, 22:19 |
| А вы подключили в проект #include"ваш_файл.h" |
| Автор: BorisVorontsov 28.1.2007, 05:59 |
| Зачем мне файл *.h? |
| Автор: Любитель 30.1.2007, 02:27 |
| Хейдер майлибы в студию. |
| Автор: BorisVorontsov 30.1.2007, 13:10 |
| Автор: Любитель 30.1.2007, 22:31 |
| Млин, как обявлена экспортированная функция? |
| Автор: Earnest 31.1.2007, 13:36 |
Было бы чему удивляться. Объявление влияет на реальное имя. Можно экспортировать как C, так и C++ имена, но они, естественно должны совпадать как при экспорте, так и при импорте. Либо везде ставь extern С, либо везде убирай. |
| Автор: Любитель 4.2.2007, 16:14 | ||
Читаю. Внимательно. Нахожу только объявление импорта. Если библиотека не твоя, тос чего ты взял, что она там не декорирована. Ты уже тогда поменять ничего не в силе и должен её объявить так (с экстерн "C" или без) как и в самой либе. |
| Автор: BorisVorontsov 6.2.2007, 21:59 | ||
Любитель, для самых непонятливых:
Если тебе нравятся красивые слова терминологии, перевожу: Есть WINAPI библиотека, в таблице экспорта которой (что так же указано в её документации) имеются функции MyFunctionOne и MyFunctionTwo. |
| Автор: Любитель 7.2.2007, 18:27 |
| Млиин... Речь про то, что экспорт идёт с extern "C" или нет Посмотри чем угодно таблицу экспорта DLL-ки - проверь имена функций. не даёт результатов. |
| Автор: BorisVorontsov 9.2.2007, 21:13 | ||||||||
OMFG.
Вообще говоря (windef.h):
Это 5 |
| Автор: Любитель 9.2.2007, 21:29 | ||
| BorisVorontsov, ну неужели не понятно - я прошу проверить декорированность имён. А насчёт второго - ты вообще глупость сморозил. А если в библиотеки Васи Пупкина есть такой код (достаточно типичный):
из этого вовсе не следует, что __declspec(dllexport/dllimport) есть API Васи Пупкина. |