|
まあごく普通の「呼ぶ側がバッファを用意して渡す」仕様であるとして C / C++ の void* は総称型と考えてよい=何型を渡してもよい わけだけど 実用上 C# から呼ぶときは特定の型しか渡さないはずなので、その型で DllImport しませう。 C# で class MyClass (参照型) のインスタンスを渡したいのなら
C++ extern "C" __declspec(dllimport) int __stdcall mydllfunc(void*);
C# using System.Runtime.InteropServices; class MyClass { ... } [DllImport("mydll.dll", CallingConvention = CallingConvention.StdCall)] static extern int mydllfunc(MyClass c);
値型 struct MyStruct のインスタンスを渡したいなら ref MyStruct や out MyStruct
__cdecl だったりするなら適切に直してください
|