我正在做一个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(使用前将#替换为@)