我想檢查一個本機DLL是否已經從COM模塊加載?我的目的是檢查是否加載了合適的DLL,以便我可以調用相應的方法。我提到鏈接「https://msdn.microsoft.com/en-us/library/system.appdomain.getassemblies.aspx」但它沒有幫助。在調試過程中,我的本地模塊也沒有顯示在Visual Studio的Loaded Module列表窗口中,但是當我設置「Enable native code debugging」時顯示它?有沒有通過代碼實現相同的方法?檢查運行時是否從COM模塊加載了WIN32/Unmanaged DLL
0
A
回答
2
致電GetModuleHandle
傳遞模塊的名稱。如果模塊在您的過程中加載,則返回非空值。
0
我發現這樣一個解決我的問題:
private bool IsNativDllLoaded(string dllName)
{
IntPtr module = GetModuleHandle(dllName);
return module != IntPtr.Zero;
}
相關問題
- 1. 在運行時加載COM DLL?
- 2. vb.net:測試運行時是否註冊了一個com dll
- 3. IPV6雙棧模式檢查是加載了ipv6內核模塊
- 4. Perl:檢查你的文件是否作爲模塊加載或直接運行
- 5. 如何檢查loadfunctionlibrary是否在運行時在UFT中成功加載了庫。
- 6. 檢查是否已經加載了
- 7. 檢查是否加載了.txt文件
- 8. 檢查是否加載了jar文件?
- 9. 檢查是否加載了jquery-mobile
- 10. 在運行時,如何檢查模塊或類從哪裏加載?
- 11. SQL檢查是否運行了「CHECK CONSTRAINT」?
- 12. 檢查tools.jar是否可用並在運行時動態加載
- 13. 檢查是否安裝了dll
- 14. Python模塊檢查是否
- 15. JBoss - 在運行時加載新模塊
- 16. 在運行時重新加載模塊
- 17. 在運行時加載js文件檢查它是否沒有加載
- 18. 從DLL中加載棱鏡模塊
- 19. 動態路由代碼拆分檢查模塊是否加載
- 20. 檢查是否在Django中加載了模板標籤
- 21. 檢查Linux內核模塊是否正在運行
- 22. 檢查是否有與Multithreaded DLL(/ MD)庫鏈接的模塊
- 23. 否分別編譯Node.JS模塊並加載運行時間
- 24. 檢查視圖在運行時加載
- 25. 在Apache上運行時加載pyodbc模塊時出錯
- 26. 檢查運行時清單中是否聲明瞭BroadcastReceiver?
- 27. 檢查是否在運行時定義了常量Obj-C
- 28. COM Interop的DLL的運行時編譯
- 29. 檢查是否有shell從殼運行
- 30. 檢查IEnumerable是否爲ValueType(運行時)
非常感謝你。它幫助了我。 :) –
這個API調用確實爲[TOCTOU](https://en.wikipedia.org/wiki/Time_of_check_to_time_of_use)爭用條件設置了自己。另一方面,[GetModuleHandleEx](https://msdn.microsoft.com/en-us/library/windows/desktop/ms683200.aspx)能夠執行相同的檢查,但通過增加將模塊鎖定到內存中其裁判計數。然後可以安全地在隨後調用[GetProcAddress](https://msdn.microsoft.com/en-us/library/windows/desktop/ms683212.aspx)時使用返回的句柄。 – IInspectable
@IInspectable:極好的一點,儘管COM的設計可能沒有必要。 ['DllCanUnloadNow(...)'](https://msdn.microsoft.com/en-us/library/windows/desktop/ms690368%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396)用於確定是否保留任何引用。獲取參考應該是保持模塊有效所需的全部參數。 –