我做了一個簡單的工具(LogAndMailApplication),它將日誌發送到我的gmail帳戶,爲此我使用了Indy組件TIdSSLIOHandlerSocketOpenSSL。要運行它需要ssleay32.dll和libeay32.dll。如何在關閉應用程序之前刪除openssl dll
因此,在應用程序啓動時,我從exe資源中提取2個DLL,並將它們複製到應用程序文件夾中。
所有indy compoennts都在關閉應用程序之前銷燬的數據模塊中。
破壞datamodule後,我嘗試刪除dll,但我不能。
我剛剛使用了DeleteFile,但對於我在應用程序出口(包括一個ini文件)上刪除的所有其他文件都非常有用。
我試圖做一個簡單的exe,只是刪除2 DLL,它的工作原理。所以問題是,2 DLL將以某種方式鎖定,直到LogAndMailApplication未關閉,如何解決問題?
如果DLL文件隱藏在可執行文件,怎麼能用戶或管理員可以通過一個較新的版本來替換這些DLL,如果他們需要一個關鍵的安全補丁? – mjn 2010-11-04 15:06:36
他們不能,但這不是有意義的。我只是給自己發一封電子郵件。我只安裝在3位客戶上,所以目前它是可管理的。 – LaBracca 2010-11-04 15:51:41
爲什麼你需要刪除DLL?爲什麼不把他們留在應用程序目錄中,以便他們下次可以使用? (對於這個問題,你爲什麼不直接讓*安裝程序把它們放在那裏?) – 2010-11-04 17:22:32