0

我有一个由具有以下签名的 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的,声明应该不同吗?如果是这样,我应该如何声明这一点?作为ShortInt32?我需要编组返回值吗?

4

1 回答 1

0

C 函数不返回真正的布尔值,它返回一个整数。您可能需要对其进行编组

编辑:另外,你应该让你的函数静态。

于 2010-10-17T03:10:06.860 回答