__declspec(dllexport)  int foo(int a, int b);头文件中这种声明方式默认的参数调用约定是什么?  __cdecl还是__stdcall?如果要__stdcall一定要__declspec(dllexport) int __stdcall foo(int a, int b)吗?

解决方案 »

  1.   

    VC 一般缺省在 project 配置的时候,将调用转换设置成 __cdecl 的;所以,如果你不指定,就是 __cdecl 的;如果想修改成 __stdcall,一个办法是在函数申明的时候这样写,另外一个办法是修改 project 的配置
      

  2.   

    头文件中如果这么声明,在实现文件中还需要添加__stdcall吗?
    看到有人在c/c++文件中这么写:  int __stdcall foo(...);   __stdcall是不是不能省略?(不在project中设置缺省值)。
      

  3.   

    一般就都写上__stdcall吧,c、c++不写是__cdecl!