我遇到外部本机DLL问题。
我正在使用ASP.NET 1.1 Web应用程序并拥有我通过DLLImport指令加载的DLL。
这是我映射DLL函数的方法:
[DllImport("somedllname", CallingConvention=CallingConvention.StdCall)]
public static extern int function1(string lpFileName,string lpOwnerPw,string lpUserPw);
[DllImport("somedllname", CallingConvention=CallingConvention.StdCall)]
public static extern int function2(int nHandle);
我调用dll方法并且一切都很好,但是我遇到了这个DLL在某些情况下崩溃我的网站的问题,所以我想在我使用它之后卸载dll的选项。
我在此链接中找到了一个解决方案,但我没有.NET 1.1中的“UnmanagedFunctionPointer”属性。
有没有办法可以实现这个人用他的榜样做的事情?
答案 0 :(得分:1)
我不确定是否有更简单的方法,但您可以随时加载一个动态加载/卸载导致您出现问题的其他DLL的DLL。
答案 1 :(得分:0)
也许你可以用COM包装dll,然后利用COM基础设施来加载和卸载DLL ......然后你可以从它的Com Callable Wrapper中与dll进行交互,当你添加对它的引用时生成它COM dll。如果你真的想要了解何时卸载,在获得对象的引用后,你可以指定调用Marshal.ReleaseComObject来释放它的引用。
有关详细信息,请参阅此处... COM Wrappers
答案 2 :(得分:0)
对于他可能关心的人,我在以下链接中找到了解决方案......
它需要一些汇编程序编码......它可以工作:))))