Dll c++ natif dans appli .Net - Perte de pointeur
Bonjour,
J'ai une dll en c++ natif/mfc, que je souhaite utiliser dans une application .Net (en c#).
J'ai donc essay� de r�aliser un wrapper en C++/CLI pour les classes de la dll (ici un thread) que je souhaite utiliser, suivant le tutoriel de nico-pyright.
Ma classe ThreadWrapper contient comme attribut un pointeur vers ma classe native, CThread, qui elle-m�me d�rive de CWinThread.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
public ref class ThreadWrapper
{
public:
ThreadWrapper();
~ThreadWrapper();
// Members
protected:
CThread* m_pThread;
// Service
public:
CThread* GetThread() { return m_pThread; }
Boolean CreateThread();
void StopThread();
ThreadWrapper^ operator=(ThreadWrapper^ src) ;
}; |
A la compilation, tout semble fonctionner, mais � l'ex�cution, lors du retour de la m�thode CreateThread(), le pointeur m_pThread est corrompu et du coup mon programme plante.
Code:
1 2 3 4 5
|
Boolean ThreadWrapper::CreateThread()
{
return (m_pThread->CreateThread()==0 ? false : true);
} |
Je pense que c'est un probl�me d'espace m�moire manag�/non manag�, mais je n'arrive pas � comprendre le m�canisme exact.
Si quelqu'un peut m'�clairer sur ce sujet...
Merci.;)