관리되지 않는 C++ 코드에서 shared_ptr을 C#으로 마샬링하는 것이 어떻게 가능합니까?.NET Interop 및 TR1 shared_ptr
나는 C++에서 (C 바인딩을 통해 노출 된) 새로운 MyObject를 할당하고 shared_ptr을 통해 포인터를 반환하는 함수가있다.
MyObjHandle* ref = NULL:
GetMyObject(&ref); // double ptr...
MyObjHandle가 정의 :
C에서는 ++ 나는 함수를 호출 할 수 있습니다 내가 C에서 # GetMyObject에 전화를 PInvoke를 얼마나
typedef struct obj_t {
shared_ptr<MyObject> objPtr;
} MyObjHandle ;
? 나는 MyObjectHandle이라는 구조체를 C#에서 정의한 것처럼 명백히 했었습니다. 멤버 objPtr을 IntPtr로 정의했습니다. AccessViolationException 오류로 인해 비참하게 실패했습니다. 실패한 몇 가지 다른 PInvoke 변형을 시도했습니다. shared_ptr 및 C#을 사용하여 interop 샘플을 찾을 수없는 것 같습니다. 어떤 도움을 주셔서 감사합니다 ...