Salut
Renfield, salut
EBArtSoft,
merci pour ces idées.
Renfield, pour une raison que j'ignore encore,
GetObject(,modModule.ProgID) n'arrive pas à récupérer l'instance existante (
pendant que je suis sûr qu'elle existe, et lui de me dire "429 blabla"), peut-être à cause du transtypage de l'interface que je ne fais pas (
peu de temps, là tout de suite), et
GetObject("",modModule.ProgID) me crée une 2ème instance (
c'est d'ailleurs sûrement ce qu'essaye de m'expliquer MSDN).
J'irais sûrement aussi investiguer la piste d'
EBArtSoft, sur l'"
effaçabilité" de la dll, mais il faudra auparavant que je passe par
codyx pour trouver un snippet qui me permet d'éprouver cette "
effaçabilité", mais sans l'accomplir.
En effet, je souhaite laisser cela à mes fichiers *.inf, car chaque extension a son lot de composants externes (
parfois partagés), et lorsque la phase de désinstallation échoue (
raison x, y liée au LiveUpdate/Downdate à partir du ftp ou du local), je souhaite redémarrer l'extension.
Par contre, pour faire avancer le débat, oui, je sollicite trop
GetModuleHandle. Mais si je l'appelle une fois, il me retourne un handle (
donc pas 0), et si je le laisse tranquille pendant environ 30 secondes, et que je le rappelle, il finit par me retourner 0 (
tant attendu, mais j'aimerais bien ne pas avoir à attendre, c'est pour cela que je le sollicite). De la même façon,
ProcessExplorer me signale le module chargé pendant un certain temps après que j'ai fait le nécessaire pour le décharger (
toujours au pas à pas sous VB), puis, pendant que j'écrase mon café tout en remuant ma cigarette, il me notifie du déchargement du module. Et parfois même, à ce point là,
GetModuleHandle n'est encore tout à fait au courant (
environ 2 s après).
Je n'ai pas encore comparé cette phase de déchargement entre toutes mes extensions, celle que j'utilise pour la conception du LiveUpdate ne fait rien de spécialisé, mais elle a en commun avec les autres extensions tout ce qui va de paire avec l'interface (
des skins fonds d'écrans et boutons, des thèmes, un modèle User, une Connexion DB locale, des notifications dans les 2 sens... du basique quoi), et j'émets l'hypothèse que le temps de déchargement réel de toutes ces broutilles est peut-être la raison de mon attente après le
GetModuleHandle. Ceci dit, je ne m'y connais pas assez en programmation Windows pour savoir si cela a vraiment une influence sur le déchargement.
merci à vous 2, je vous tiens au courant,
à+
PS: pour l'instant, sans pas à pas, cela fonctionne, mais en 2 fois. Une fois, je tente le changement de version (
up ou down), il n'arrive souvent qu'à m'arrêter le module (
et oui, parfois cela marche du 1er coup, ce qui finit par être, paradoxalement, agaçant). La 2ème fois part d'un module absent, et fonctionne impéccablement (
donc je ne suis pas encore dans l'embarras total). Mais je me demande si, finalement, je ne vais pas finir par utiliser une source VBF (
trouvée par bon hasard, mais dont je n'ai plus l'URL sous la souris) qui donnait les clés pour créer les objets soit même, et les releaser soit même (
je ne sais même pas si ce n'est pas un de vous 2, l'auteur, ou alors ShareVB?).
rvblogn
Je veux ton bien....et je l'aurais....mieux vaut tard...que trop tard!