日期:2014-05-17  浏览次数:20882 次

如何在使用DLL文件后,通过程序卸载使用的DLL文件?
本帖最后由 jxdong1013 于 2013-06-18 14:52:08 编辑
各位朋友:
  我在开发项目中遇到一个DLL使用更新问题,情况如下:
  DLL文件是用C++的动态库,C#程序进行调用。同时可能需要更新C++的DLL文件。 
    由于C++文件进程需要更新,所有我会在程序中下载文件然后更新C++文件,提示



我在更新C++dLL文件之前,是调用过这个DLL的函数的。从而导致更新这个文件时,出现上图中的错误。
 
C# 调用 C++的方法如下:
[DllImport("ICCInter_hz.dll")]
public extern static int ICC_OpenSession( StringBuilder atr );
测试发现:
调用过方法以后, 文件就被程序占用了,无法删除此文件,求如何在调用以后及时的卸载这文件,可以被别的程序删除。
c# dll

------解决方案--------------------
这是静态加载的,一运行就占用了,你可以哟个api的 LoadLibrary 动态加载,用完卸载