Bonjour,
J'ai un souci avec la fonction FreeLibrary.
Depuis mon éxécutable je charge sans problème une DLL
qui s'éxécute normalement. Mais, au moment de libérer celle-ci
avec la fonction FreeLibrary les choses se corsent. En debuggant
j'ai pu vérifier que FreeLibrary retourne zéro, càd que la fonction échoue.
Le hic c'est que le programme ne plante pas à ce moment là mais plus
tard au moment où je le quitte (The instruction at "0x327273cc" referenced memory at "0x01b0e8f0". The memory could not be "read".).
J'ai testé sans la fonction FreeLibrary et là tout roule. Quand je quitte
le prog aucun accroc.
Voici un extrait montrant le lancement de la DLL. Est-ce que ça inspire quelqu'un ?
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 HINSTANCE hinstDLL; DLLFUNC ImpFuncDLL; BOOL fFreeResult; if (hinstDLL=LoadLibrary ("coocs.dll")) { ImpFuncDLL=(DLLFUNC)GetProcAddress(hinstDLL, "DLLCoocsMain"); if (ImpFuncDLL) { ImpFuncDLL(BaseLex3, NbFormesPoles, NumFormesPoles, FqMin, SpMin, TailleFenMots, ImpCtxRenc, DelimFenM.c_str(), DelimPhra.c_str(), DelimPara.c_str(), FormFenJauge->Handle, FormFenJauge->ProgressBar); } else { //ErrorInfoMessage(30); return false; } fFreeResult=FreeLibrary (hinstDLL); // Cette commande plante le prog !!! } long h=1; //else ErrorInfoMessage(30); }
Partager