我有一个由具有以下签名的 C 库导出的函数:
extern "C" BOOL Func()
该函数在 VB.NET 代码中声明如下:
<DllImport("mylib.dll", CallingConvention:=CallingConvention.Cdecl)>
Private Shared Function Func() As Boolean
End Function
问题是当我从 .NET 代码调用该函数时,我得到了一个 ExecutionEngineException。
鉴于在这个 C 代码中BOOL
是 typedefint
的,声明应该不同吗?如果是这样,我应该如何声明这一点?作为Short
或Int32
?我需要编组返回值吗?