extern "C" _declspec(dllexport) _stdcall void func()解决思路

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 ?