次のシグネチャを持つ C ライブラリによってエクスポートされる関数があります。
extern "C" BOOL Func()
関数は、VB.NET コードで次のように宣言されます。
<DllImport("mylib.dll", CallingConvention:=CallingConvention.Cdecl)>
Private Shared Function Func() As Boolean
End Function
問題は、.NET コードから関数を呼び出すと、ExecutionEngineException が発生することです。
この C コードのようにtypedefBOOL
さint
れている場合、宣言は異なる必要がありますか? もしそうなら、私はこれをどのように宣言すべきですか?Short
またはInt32
?_ 戻り値をマーシャリングする必要がありますか?