J'ai un programme qui parcourt les ressources contenues dans une dll
fournie par l'utilisateur, j'utilise donc LoadLibrary/FreeLibrary pour
les charger et les d�charger.
J'observe un comportement tr�s bizarre lorsque la dll est une copie de
kernel32.dll. Exemple (aaa.dll est une copie de kernel32.dll) :
int main()
{
HMODULE hMod;
BOOL bRet;
hMod = LoadLibrary(TEXT("C:\\test\\aaa.dll")); // OK
bRet = FreeLibrary(hMod); // OK
hMod = LoadLibrary(TEXT("C:\\test\\aaa.dll")); // Exception de
premi�re chance -> hMod = 0
// A partir de la plus rien ne marche, je ne peux plus faire de
LoadLibrary sur cette dll
bRet = FreeLibrary(hMod);
hMod = LoadLibrary(TEXT("kernel32.dll")); // OK
bRet = FreeLibrary(hMod); // OK
hMod = LoadLibrary(TEXT("kernel32.dll")); // OK
bRet = FreeLibrary(hMod); // OK
}
Ce qui est bizarre c'est qu'en utilisant le kernel32.dll du syst�me je
n'ai aucun probl�me.
Je n'ai pas ce probl�me avec d'autres dll syst�me...
Je vois que LoadLibrary et FreeLibrary sont d�finies dans kernel32.dll,
je me demande si c'est une co�ncidence.
Si quelqu'un a une id�e...
Merci
C'est une FAQ du groupe Win32 (http://tinyurl.com/cvd7wv)
(LoadLibraryEx et DONT_RESOLVE_DLL_REFERENCES
pour que le DLL loader saute les references)
Merci, ca fonctionne