Bonjour,
je suis en train de développer un activeX en C++ avec Visual Studio .NET, et j'ai un problème de bug (plantage de IE) quand je lance une méthode de mon activeX à partir du code JavaScript, et cette erreur vient apparemment d'une instanciation dans cette méthode.
[EDIT]
Pour rendre plus simple le problème que j'expose, est-ce que ce code peut poser des problèmes ?
[/EDIT]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 int Functions::Init(bool _a, bool _b) { this->myIPB = *(new IPB(_a, _b)); return this->myIPB.Init(); }
Explications plus longues...
la méthode de l'activeX
la fonction init:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 BSTR CActiveXCtrl::Init(VARIANT_BOOL _a, VARIANT_BOOL _b) { AFX_MANAGE_STATE(AfxGetStaticModuleState()); //L'instanciation qui pose problème int res = funct->Init(true,true); strcpy(resultat, funct->GetText(res)); CString strResult(resultat); return strResult.AllocSysString(); }
le constructeur de la classe IPB:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 int Functions::Init(bool _a, bool _b) { this->myIPB = *(new IPB(_a, _b)); return this->myIPB.Init(); }
Quand je lance la méthode Init(true,true), internet explorer plante et mon debug me dit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 IPB::IPB(bool _a, bool _b) { pObject = NULL; this->res = _a; this->comp = _b; }
avec:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 int Functions::Init(bool _a, bool _b) { >>>erreur ici this->myIPB = *(new IPB(_a, _b)); return this->myIPB.Init(); }
this 0xcdcdcdcd
|_>myIPB {pObject=??? res=??? comp=???}
|_> pObject CXX0030 expression cannot be evaluated
|_> res CXX0030 expression cannot be evaluated
|_> comp CXX0030 expression cannot be evaluated
Partager