检查运行时是否从 COM 模块加载了 WIN32 / Unmanaged DLL

Checking if a WIN32 / Unmanaged DLL is loaded from a COM module on runtime

我想检查是否已从 COM 模块加载本机 dll?我的目的是检查是否加载了适当的 DLL,以便我可以在其上调用相应的方法。我提到了 link “https://msdn.microsoft.com/en-us/library/system.appdomain.getassemblies.aspx” 但它没有帮助。在调试期间,我的本机模块也没有显示在 visual studio 中的加载模块列表 window 中,但是当我设置 "Enable native code debugging" 时它会显示?有没有办法通过代码实现相同的目的?

调用 GetModuleHandle 传递模块名称。如果在您的进程中加载​​了模块,则返回非空值。

我找到了解决我的问题的方法:

private bool IsNativDllLoaded(string dllName) 
{ 
    IntPtr module = GetModuleHandle(dllName); 
    return module != IntPtr.Zero; 
}