OVH Cloud OVH Cloud

Désenregistrement des DLL

6 réponses
Avatar
YS1
Bonjour/soir. Je développe une DLL (une extension du menu contextuel),
et je dois l'enregistrer (regsvr32) pour l'utiliser et la déboguer.
L'ennui est que même si je la désenregistre (regsvr32 /U), le fichier
DLL reste non inscriptible (alors que la DLL n'est plus utilisée,
puisque le menu contextuel n'est plus modifié), ce qui m'empêche de
recompiler mon projet sans redémarrer l'ordinateur.

Y a-t-il un moyen de désenregistrer complètement une DLL sans redémarrer ?
J'ai déjà essayé de mettre le flag AlwaysUnloadDLL à 1, mais cela ne
suffit pas..

6 réponses

Avatar
Vincent Burel
"YS1" wrote in message
news:44ab7742$0$23261$
Bonjour/soir. Je développe une DLL (une extension du menu contextuel),
et je dois l'enregistrer (regsvr32) pour l'utiliser et la déboguer.
L'ennui est que même si je la désenregistre (regsvr32 /U), le fichier
DLL reste non inscriptible (alors que la DLL n'est plus utilisée,
puisque le menu contextuel n'est plus modifié), ce qui m'empêche de
recompiler mon projet sans redémarrer l'ordinateur.

Y a-t-il un moyen de désenregistrer complètement une DLL sans redémarrer ?
J'ai déjà essayé de mettre le flag AlwaysUnloadDLL à 1, mais cela ne
suffit pas..



faites une copie de cette DLL (dans un autre répertoire même) avant de faire
un regsvr32.
(travailler avec une copie de DLL, n'empeche pas de la debugger)
VB
Avatar
YS1
Vincent Burel a écrit :
"YS1" wrote in message
news:44ab7742$0$23261$
Bonjour/soir. Je développe une DLL (une extension du menu contextuel),
et je dois l'enregistrer (regsvr32) pour l'utiliser et la déboguer.
L'ennui est que même si je la désenregistre (regsvr32 /U), le fichier
DLL reste non inscriptible (alors que la DLL n'est plus utilisée,
puisque le menu contextuel n'est plus modifié), ce qui m'empêche de
recompiler mon projet sans redémarrer l'ordinateur.

Y a-t-il un moyen de désenregistrer complètement une DLL sans redémarrer ?
J'ai déjà essayé de mettre le flag AlwaysUnloadDLL à 1, mais cela ne
suffit pas..



faites une copie de cette DLL (dans un autre répertoire même) avant de faire
un regsvr32.
(travailler avec une copie de DLL, n'empeche pas de la debugger)
VB



Oui, cela reste une solution "bricolage", mais n'y a-t-il vraiment pas
moyen de forcer Windows à prendre en compte le désenregistrement ?
Avatar
Vincent Burel
"YS1" wrote in message
news:44abde60$0$19546$
>Vincent Burel a écrit :
> faites une copie de cette DLL (dans un autre répertoire même) avant de


faire
> un regsvr32.
> (travailler avec une copie de DLL, n'empeche pas de la debugger)
> VB

Oui, cela reste une solution "bricolage",



C'est surtout une solution à votre portée ! car enfin, rien n'indique que
vous sachiez faire autre chose que du bricolage :-)
Avatar
YS1
Vincent Burel a écrit :
"YS1" wrote in message
news:44abde60$0$19546$
Vincent Burel a écrit :
faites une copie de cette DLL (dans un autre répertoire même) avant de




faire
un regsvr32.
(travailler avec une copie de DLL, n'empeche pas de la debugger)
VB


Oui, cela reste une solution "bricolage",



C'est surtout une solution à votre portée ! car enfin, rien n'indique que
vous sachiez faire autre chose que du bricolage :-)



Je n'ai certes pas de "Master" en Win32, mais tout de même... En fait,
je demandais s'il existait une procédure pour faire ce que je veux (et
si oui, laquelle), pas s'il existait une procédure *que je pourrais
suivre* :-) Car tout de même, l'absence d'une telle procédure serait
étonnante !
Avatar
Vincent Burel
"YS1" wrote in message
news:44acb1fb$0$22466$
Vincent Burel a écrit :
> "YS1" wrote in message
> news:44abde60$0$19546$



Je n'ai certes pas de "Master" en Win32, mais tout de même... En fait,
je demandais s'il existait une procédure pour faire ce que je veux (et
si oui, laquelle), pas s'il existait une procédure *que je pourrais
suivre* :-) Car tout de même, l'absence d'une telle procédure serait
étonnante !



Peut-etre... vu de ma fenêtre, la méthode que je vous ai donné est la seule
que j'ai vu... un serveur COM est souvent initié par un autre process (autre
que même celui du debugger) et vous n'avez a priori pas de prise sur la
gestion cache de ce process.

En outre l'expérience (la mienne) montre qu'en la matière, windows fait ce
qu'il veux, et que même dans un process il est très difficile de libérer une
DLL COM fiablement (avec CoFreeLibrary ou CoFreeUnusedLibraries).

VB
Avatar
YS1
Merci de votre aide.