读书人

extern quot;Cquot; _declspec(dllexport) _st

发布时间: 2012-04-05 12:42:39 作者: rapoo

extern "C" __declspec(dllexport) __stdcall void func()
1、extern "C" __declspec(dllexport) __stdcall void Func()

2、extern "C" __declspec(dllexport) void Func()

这两个有什么区别?

c++ 写得 dll 在 delphi 中用 stdcall 调用,第一个失败,第二个成功

为什么?


[解决办法]
__stdcall是一种调用约定具体可以参看MSDN,他规定了参数压栈方式等等,
至于不加,那要看你工程编译器默认什么调用约定,也可能是__stdcall也就是等价
[解决办法]
_stdcall又把你的函数名改了。。。。


用def文件吧
[解决办法]
第一个是_stdcall调用约定;
第二个是c调用约定
[解决办法]
你的 _stdcall 再次 让函数名变乱了

_cdecl 却不会

探讨

引用:

第一个是_stdcall调用约定;
第二个是c调用约定


我本来也这么想的,可是在 delphi 中用 stdcall 调用,第一个失败,第二个成功 why ?

读书人网 >C++

热点推荐