Bonjour,
Sous Visual Studio 2010, j'ai créé un projet C++/CLI qui comporte deux classes : l'une managée, l'autre native, respectivement MUCam et NCam.


La classe managée (MUCam.h) déclare un objet de la classe native NCam de la façon suivante : private: NCam * Cam;

1 - une méthode "A" de la classe managée crée l'instance Cam : Cam = &NCam( ref );
2 - et retourne la valeur de la méthode Statut de NCam : return = Cam->Statut();
3 - je constate que le destructeur ~NCam(void) est appelé lors de cette instruction return, AVANT l'appel à la méthode Statut(). Ce qui signifie aussi que l'objet Cam n'est plus utilisable par la suite :

Questions :
1 - Est-il correct de procéder de cette façon en faisant cohabiter les deux classes dans le même projet C++/CLI ?
2 - Si oui, pourquoi le destructeur est-il appelé à cet instant dans la méthode "A" ?
3 - Comment instancier et utiliser un objet natif dans une classe managée en C++/CLI ? J'avais cru comprendre que ce langage permettait de faire cohabiter les deux mondes...

J'espère avoir été assez clair.
Merci de vos réponses.
Cordialement