Bonjour,
Je travaille avec un logiciel qui charge un certain nombre de DLL, dont certaines que j'ai eu la joie d'écrire. Aujourd'hui, je voudrais en faire une nouvelle qui force le déchargement d'une autre car elle consomme trop de mémoire pour certaines opérations (en tant normal elle est utile, mais pour certains gros traitements, il est préférable qu'elle ne soit pas là). Je voudrais éviter à l'utilisateur la peine de quitter le logiciel, supprimer la dll temporairement et relancer le logiciel pour faire l'opération inverse 1h plus tard. Bien entendu, je ne dispose pas du code de cette dll qui m'embête.
En gros, j'ai fait ça :
La MessageBox n'étant jamais affichée, j'en déduis que tout s'est bien passé, mais dès que je veux reprendre la main sur mon logiciel (quelque soit l'opération que je veux faire), j'ai droit au plantage violent
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 HMODULE madll = GetModuleHandle("MaDll.dll") ; if (!AfxFreeLibrary(madll) { AfxMessageBox("Impossible de décharger MaDll.dll") ; }Ma question est donc : ai-je oublié quelque chose de primordial ? Ou alors suis-je un doux rêveur de penser que je peux décharger une dll comme ça ?0xC0000005: Violation d'accès lors de la lecture de l'emplacement 0x00000000.
Merci
Partager