我正在进行P / Invoke,我正在使用以下方法
[DllImport("Authz.dll", SetLastError = true)]
public static extern BOOL AuthzFreeContext(
IntPtr phAuthzResourceManager);
即使它正常工作,如何保证Authz.dll
始终加载到我的代码中。假设我的dll
有些XXX.dll
我应该如何在使用之前检查是否加载了dll,这样我就不会找到找不到方法的方法。
答案 0 :(得分:14)
Marshal.PrelinkAll(Type)
或
Marshal.Prelink(MethodInfo)
<强>更新强>
遗憾的是,如果找不到DLL,MSDN文档就没有提到任何抛出的异常。我刚刚通过一个简单的应用验证了它确实是DllNotFoundException
正在抛出。