Comment est-il possible de rassembler un shared_ptr de code C++ non managé en C#?.NET Interop et TR1 shared_ptr
I ont une fonction en C++ (exposée à travers les liaisons C) qui va allouer une nouvelle MyObject et renvoyer un pointeur vers elle par l'intermédiaire d'un shared_ptr.
En C++ je peux appeler la fonction:
MyObjHandle* ref = NULL:
GetMyObject(&ref); // double ptr...
où MyObjHandle est défini:
typedef struct obj_t {
shared_ptr<MyObject> objPtr;
} MyObjHandle ;
Comment puis-je Pinvoke l'appel à GetMyObject de C#? Je l'ai fait l'évidence de simplement définir la structure MyObjectHandle à peu près comme cela est en C# expcept Je défini le membre ObjPtr comme IntPtr. Cela a lamentablement échoué avec une erreur AccessViolationException. J'ai essayé quelques autres variantes de PInvoke qui ont également échoué. Je n'arrive pas à trouver d'échantillons interop avec shared_ptr et C#. Toute aide appréciée ...