我正在执行P/Invoke,并且正在使用以下方法
[DllImport("Authz.dll", SetLastError = true)]
public static extern BOOL AuthzFreeContext(
IntPtr phAuthzResourceManager);
即使工作正常,如何保证
Authz.dll
始终加载到我的代码中。假设我的dll
是一些XXX.dll
,在使用该dllt之前,我应该如何检查该dll是否已加载,这样我就不会出现未找到方法异常的情况。 最佳答案
Marshal.PrelinkAll(Type)
或者Marshal.Prelink(MethodInfo)
另请:http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.marshal.prelinkall(v=vs.100).aspx
更新:
可悲的是,如果找不到DLL,则MSDN文档无法提及引发的任何异常。我刚刚通过一个简单的应用程序验证了它确实是被抛出的DllNotFoundException
。
关于c# - DllImport,如何检查DLL是否已加载?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11827722/