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 コードのようにtypedefBOOLintれている場合、宣言は異なる必要がありますか? もしそうなら、私はこれをどのように宣言すべきですか?ShortまたはInt32?_ 戻り値をマーシャリングする必要がありますか?

4

1 に答える 1

0

C 関数は真のブール値を返さず、整数を返します。適切にマーシャリングする必要があるかもしれません。

編集:また、関数を静的にする必要があります。

于 2010-10-17T03:10:06.860 に答える