DllImport,如何检查DLL是否加载?

2024-01-28

我正在做一个P/Invoke,并且我使用以下方法

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

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


Marshal.PrelinkAll(Type) https://learn.microsoft.com/en-us/dotnet/api/system.runtime.interopservices.marshal.prelinkall

or

Marshal.Prelink(MethodInfo) https://learn.microsoft.com/en-us/dotnet/api/system.runtime.interopservices.marshal.prelink

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DllImport,如何检查DLL是否加载? 的相关文章

随机推荐