概要
WinapiとCdecl
dllの場合、C++側のExport関数は通常「WINAPI」を呼び出し規約として付けますが、
まれに何も付けないことも考えられます。
何も付けない場合は、コンパイル時のオプションにもよりますが、基本的には cdecl を付けた場合と同じです。
例えば秀丸の場合、本体の Hidemaru.exe の Export 関数はすべて WINAPI ですが、
HmOutputPane.dll や HmExplorerPane.dll の Export 関数は、すべて cdecl です。
このため、C#から呼ぶ際にはどちらなのかを明示する必要があります。
WinapiとCdecl
C++側がWINAPIなら「CallingConvention = CallingConvention.Winapi」
cdeclなら「CallingConvention = CallingConvention.Cdecl」
を付ければよいでしょう。
それ以外と使うことはほぼないと思われます。
-
C++側のソース
-
C#側のソース