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 : S�lectionner tout - Visualiser dans une fen�tre � part
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.
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.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5 Boolean ThreadWrapper::CreateThread() { return (m_pThread->CreateThread()==0 ? false : true); }
Si quelqu'un peut m'�clairer sur ce sujet...
Merci.![]()
Partager