我想检查一个本机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)用于确定是否保留任何引用。获取参考应该是保持模块有效所需的全部参数。 –