C++ と C++/CLI を混在させる clr オプションを使用した MFC プロジェクトがあります。また、メソッドを持つ安全でない C# dll (C# dll のみ、メソッドの戻り値とパラメーターしか知らない) もあります。void OpenCamera(Model model, void** camera)
この dll を C# プロジェクト (安全でない) で使用する場合、次のように簡単に使用できます。
void* tmpCamera;
a->OpenCamera(model, &tmpCamera);
私は C++/CLI の初心者なので、(c++/cli):
A^ a=gcnew A(); // build a object of Class A of the C# dll
void* tmpCamera; // maybe wrong, there is no void* in c++cli
a->OpenCamera(model, &tmpCamera); // compiles OK. But cannot run OpenCamera method
dllで例外をスローしますが、どの例外かわかりません
別の方法:
pin_ptr<void> tmpCamera; // I think it can run
a->OpenCamera(model, (void**)&tmpCamera); // compiles OK. But also cannot run
dllで例外をスローしますが、どの例外かわかりません
void**
c++/cli の a を c# メソッドに渡す方法は? pin_ptr と interior_ptr はどちらも、void**
パラメーターを指定してメソッドを実行できません。