在C#中调用非托管DLL的约定

时间:2015-09-06 13:27:23

标签: c# c++ dll dllimport calling-convention

我用C ++创建了一个DLL,并用[DllImport]加载到C#中。

  1. 导出时没有调用约定,是否__cdecl在C ++中是默认的?

  2. 使用函数__cdecl可以使用CallingConvention.StdCall或CallingConvention.Winapi吗? (它在我的测试中起作用,我不使用'变量参数')

1 个答案:

答案 0 :(得分:2)

  

在没有调用约定的情况下导出时,C ++中是否默认为__cdecl

  

可以将CallingConvention.StdCallCallingConvention.Winapi与函数__cdecl一起使用吗?

没有。使用CallingConvention.Cdecl。使用错误的调用约定可能似乎适用于某些函数,但它是错误的,并且在某些时候你会被捕获。