如何将非托管 C++ 代码中的 shared_ptr 编组为 C#?
我在 C++ 中有一个函数(通过 C 绑定公开),它将分配一个新的 MyObject 并通过 shared_ptr 返回指向它的指针。
在 C++ 中,我可以调用该函数:
MyObjHandle* ref = NULL:
GetMyObject(&ref); // double ptr...
其中 MyObjHandle 被定义:
typedef struct obj_t {
shared_ptr<MyObject> objPtr;
} MyObjHandle ;
我将如何 PInvoke 从 C# 对 GetMyObject 的调用?我做了很明显的定义结构 MyObjectHandle 几乎就像在 C# 中一样,除了我将成员 objPtr 定义为 IntPtr。这以 AccessViolationException 错误惨遭失败。尝试了其他几个 PInvoke 变体,但也失败了。我似乎找不到任何带有 shared_ptr 和 C# 的互操作示例。任何帮助表示赞赏...