Bonjour,
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
_____________________________________
Un éditeur de ressources gratuit pour Windows