Здравствуйте, zer, Вы писали:
zer>#define DllExport __declspec( dllexport )
zer>extern "C" DllExport LRESULT CALLBACK __stdcall GetMsgProc(int code,WPARAM wParam,LPARAM lParam)
zer>в def файле
zer>прописано
zer>LIBRARY TestLib
zer>GetMsgProc @1 PRIVATE
zer>по финалу получается в dll _GetMsgProc@12
zer>в 2003 студии имена получались правильные GetMsgProc. че за фигня такая? мб кто-нить сталкивался
Всё очень просто: в def-файле забыта директива EXPORTS, при наличии которой (и вообще при наличии def-файла) объявление declspec просто не нужно. Напишите примерно вот так:
// SimpleDLL.def
LIBRARY "SimpleDLL"
EXPORTS testfunc @1 PRIVATE
// SimpleDLL.cpp
extern "C"{
int __stdcall testfunc(int x){
return x;
}
}
И будут правильные имена.
Здравствуйте, Tilir, Вы писали:
T>Здравствуйте, zer, Вы писали:
zer>>#define DllExport __declspec( dllexport )
zer>>extern "C" DllExport LRESULT CALLBACK __stdcall GetMsgProc(int code,WPARAM wParam,LPARAM lParam)
zer>>в def файле
zer>>прописано
zer>>LIBRARY TestLib
zer>>GetMsgProc @1 PRIVATE
zer>>по финалу получается в dll _GetMsgProc@12
zer>>в 2003 студии имена получались правильные GetMsgProc. че за фигня такая? мб кто-нить сталкивался
T>Всё очень просто: в def-файле забыта директива EXPORTS, при наличии которой (и вообще при наличии def-файла) объявление declspec просто не нужно. Напишите примерно вот так:
T>T>// SimpleDLL.def
T>LIBRARY "SimpleDLL"
T>EXPORTS testfunc @1 PRIVATE
T>
T>T>// SimpleDLL.cpp
T>extern "C"{
T> int __stdcall testfunc(int x){
T> return x;
T> }
T>}
T>
T>И будут правильные имена.
спасибо большое

. помогло.