Libération d'une DLL avec dépendances
Bonjour, je travaille sur un programme sous forme de DLL.
Je possède une interface qui charge et décharge cette DLL à chaque traitement. Ma DLL possède des dépendances sur de multiples DLL.
Mais j'ai le probleme suivant :
soit un main suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
int main()
{
HINSTANCE hDll;
for(int i = 0 ; i < 500 ; i++)
{
hDll = LoadLibrary ( "madll.dll" );
FreeLibrary ( hDll );
}
} |
Le fait de charger et décharger la dll me fait perdre ~~40Mo à chaque passage. Je ne comprends pas pourquoi, mais il semblerait que le FreeLibrary ne libère pas tout, et c'est uniquement lorsque je quitte l'exe que la mémoire est libérée. J'ai également essayé en annulant tous les traitements (donc ma DLL ne fait absolument rien, mais possède tjrs des dépendances), mais cela donne exactement le même résultat.
Autre essai : je ne libère jamais la DLL. Dans ce cas, je ne perds ces fameux ~~40Mo que lors du premier LoadLibrary.
Merci