Bonjour j'ai un problème assez génant en C++/Cli. J'utilise une Dll non managée et lorsque la fonction est appelée une fois elle plante a la fin de l'execution je ne comprend pas. regarder dans mon code a /* Erreur Ici memory violation*/
Dans ma form j'ai déclarer un objet
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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 __gc class ManageCallBack { private: __nogc class CallBack { private : static void CALLBACK UnmanagedGetCommand(short id) { ManageCallBack* pew = ManageCallBack::GetClass(); pew->CallBackDelegate->Invoke(id); /* Erreur Ici memory violation*/ //plantage de la function le invoke marche } public : void StartInitCallBack() { char Hostname_Radar [8] = {"RADAR"}; short init_imo_func = NavnetInitImoFunc (Hostname_Radar,&CallBack::UnmanagedGetCommand ); } }; private: static ManageCallBack * m_pClass = NULL; CallBack * m_nogcCallBack; public : __delegate void Callback_Function_GetCommand(short id); Callback_Function_GetCommand * CallBackDelegate; ManageCallBack() { m_pClass = this; m_nogcCallBack = new CallBack(); } ~ManageCallBack() { delete m_nogcCallBack; } static ManageCallBack* GetClass() { return m_pClass; } void StartInitCallBack() { m_nogcCallBack->StartInitCallBack(); } };
Dans ma fonction button_click le code suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ManageCallBack * testCallBack;
Ma function get commande fait ça (mais elle s'execute bien ça marche )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 testCallBack = new ManageCallBack(); testCallBack->CallBackDelegate = new ManageCallBack::Callback_Function_GetCommand (this,&Form1::GetCommand); testCallBack->StartInitCallBack();
Je ne comprend pas ce qui pose problème
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 void GetCommand(short id) { MessageBox::Show("On est dans GetCommand", "Alarm", MessageBoxButtons::OK,MessageBoxIcon::Exclamation); }
--------------------------------
Navarro Anaël genki
Partager