我正在開發基於插件的體系結構的程序。所有的插件都是DLL,其中一些可以依賴於其他插件DLL。我希望能夠執行以下操作:如何查看我的程序是否已經加載了某個DLL?
- 在程序啓動時,掃描插件文件夾。
- 對於找到的每個插件,檢查該插件是否已經加載。 (它可能是,如果一個以前加載的插件導致它被加載爲依賴)。
- 如果沒有,請加載它。
第一和第三步是微不足道的,但我該怎麼做第二步?是否有一個winapi調用,給定一個DLL的文件名,會告訴我該DLL當前是否加載到當前進程中? (或者可能需要一個文件名和一個進程句柄?)
請不要回答「只是加載它」。我知道這會起作用。我試圖避免這種情況。
執行listdlls.exe並解析結果;) – Qiau 2012-08-13 17:31:01
@Qiau:我寧願不必依靠外部實用程序,特別是最終用戶可能不會(也可能不會)他的系統。 – 2012-08-13 17:32:14
http://stackoverflow.com/questions/1553603/how-to-know-if-a-given-dll-is-loaded-by-a-given-process 或 http://stackoverflow.com/questions/450039 /如何以編程方式獲取DLL的依賴關係 可能會回答你的問題? – Qiau 2012-08-13 17:33:47