8

我正在做 P/Invoke,我正在使用以下方法

[DllImport("Authz.dll", SetLastError = true)]
    public static extern BOOL AuthzFreeContext(
        IntPtr phAuthzResourceManager);

即使它工作,它如何保证Authz.dll总是加载到我的代码中。假设我dll是一些XXX.dll在使用之前我应该​​如何检查该 dll 是否已加载的一般情况,这样我就不会得到方法未找到异常。

4

1 回答 1

14

Marshal.PrelinkAll(Type)

或者

Marshal.Prelink(MethodInfo)

遗憾的是,文档没有提到如果找不到 DLL 会引发任何异常。我刚刚通过一个简单的应用程序验证了它确实是DllNotFoundException被抛出的。

于 2012-08-06T11:56:44.523 回答