Как можно преобразовать shared_ptr из неуправляемого кода C ++ в C #?
У меня есть функция в C ++ (предоставляемая через привязки C), которая будет выделять новый MyObject и возвращать указатель на него через shared_ptr.
В C ++ я могу вызвать функцию:
MyObjHandle* ref = NULL:
GetMyObject(&ref); // double ptr...
где MyObjHandle определено:
typedef struct obj_t {
shared_ptr<MyObject> objPtr;
} MyObjHandle ;
Как бы я вызвал вызов GetMyObject из C #? Я сделал очевидное простое определение структуры MyObjectHandle, как и в C #, за исключением того, что я определил член objPtr как IntPtr. Это с треском провалилось с ошибкой AccessViolationException. Попробовал пару других вариантов PInvoke, которые также не удалось. Я не могу найти какие-либо примеры взаимодействия с shared_ptr и C #. Любая помощь приветствуется ...