在C#中,可以使用P/Invoke(Platform Invocation Services)来加载和调用动态链接库(DLL)。为了检查DLL是否已加载,可以使用以下方法:
DllImport
属性:using System.Runtime.InteropServices;
[DllImport("kernel32.dll")]
public static extern IntPtr GetModuleHandle(string lpModuleName);
public static bool IsDllLoaded(string dllName)
{
return GetModuleHandle(dllName) != IntPtr.Zero;
}
LoadLibrary
和GetProcAddress
函数:using System.Runtime.InteropServices;
public static bool IsDllLoaded(string dllName)
{
return LoadLibrary(dllName) != IntPtr.Zero;
}
[DllImport("kernel32.dll")]
public static extern IntPtr LoadLibrary(string dllToLoad);
[DllImport("kernel32.dll")]
public static extern IntPtr GetProcAddress(IntPtr hModule, string procedureName);
在这些方法中,GetModuleHandle
和LoadLibrary
函数都会尝试加载指定的DLL。如果DLL已经加载,则返回一个非零指针,否则返回IntPtr.Zero
。
请注意,这些方法仅适用于Windows平台。如果您需要在其他平台上检查DLL是否已加载,请使用相应的平台特定方法。
推荐的腾讯云相关产品:
产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云