アンマネージ C++ コードから C# に shared_ptr をマーシャリングするにはどうすればよいですか?
新しい MyObject を割り当て、shared_ptr を介してそれへのポインターを返す C++ の関数 (C バインディングを介して公開) があります。
C++ では、次の関数を呼び出すことができます。
MyObjHandle* ref = NULL:
GetMyObject(&ref); // double ptr...
MyObjHandle が定義されている場所:
typedef struct obj_t {
shared_ptr<MyObject> objPtr;
} MyObjHandle ;
C# から GetMyObject への呼び出しを PInvoke するにはどうすればよいですか? メンバ objPtr を IntPtr として定義したことを除いて、構造 MyObjectHandle を C# とほとんど同じように定義するだけでした。それは AccessViolationException エラーで惨めに失敗しました。失敗した他のいくつかの PInvoke バリエーションを試しました。shared_ptr と C# との相互運用性のサンプルが見つからないようです。助けていただければ幸いです...