J'ai fait un outil simple (LogAndMailApplication) qui envoie des journaux à mon compte gmail, pour cela j'ai utilisé le composant Indy TIdSSLIOHandlerSocketOpenSSL. Pour fonctionner, il a besoin de ssleay32.dll et de libeay32.dll.Comment faire pour supprimer openssl dll avant de fermer l'application
Ainsi, au démarrage de l'application, j'extrais des ressources exe les 2 dll et je les copie dans le dossier de l'application.
Tous les composants indy sont dans un datamodule que je détruis avant de fermer l'application. Après la destruction du datamodule, j'essaye de supprimer les dll mais je ne peux pas. J'ai juste utilisé DeleteFile, mais cela a bien fonctionné pour tous les autres fichiers que je supprime à la sortie de l'application (y compris un fichier ini).
J'ai essayé de faire un simple exe qui supprime juste le 2 dll et cela fonctionne. Donc, le problème est que les 2 DLL sont en quelque sorte verrouillés jusqu'à ce que le LogAndMailApplication n'est pas fermé, comment résoudre le problème?
si les DLL sont cachés dans le fichier exécutable, comment les utilisateurs ou les administrateurs de remplacer les DLL par une version plus récente, si elles ont besoin un correctif de sécurité critique? – mjn
Ils ne peuvent pas, mais ce n'est pas quelque chose qui a du sens ici. Je viens de m'envoyer un e-mail. Je l'installe sur 3 clients seulement, donc pour l'instant c'est gérable. – LaBracca
Pourquoi avez-vous besoin de supprimer les DLL du tout? Pourquoi ne pas les garder dans le répertoire de l'application pour qu'ils soient prêts à utiliser la prochaine fois? (Et d'ailleurs, pourquoi ne faites-vous pas simplement le * installateur * les mettre là?) –