各位博友:
我在开发项目中遇到一个DLL使用更新问题,情况如下:
DLL文件是用C++的动态库,C#程序进行调用。同时可能需要更新C++的DLL文件。
我在更新C++文件是,提示:
我在更新C++dLL文件之前,是调用过这个DLL的函数的。从而导致更新这个文件时,出现错误。
C# 调用 C++的方法如下:
[DllImport("ICCInter_hz.dll")]
public extern static int ICC_OpenSession( StringBuilder atr );
测试发现:
调用过方法以后, 文件就被程序占用了,无法删除此文件,求如何在调用以后及时的卸载这文件,可以被别的程序删除。
//导入引擎dll
[DllImport("Kernel32.dll")]
public static extern IntPtr LoadLibrary(string lpFileName);
[DllImport("kernel32.dll", SetLastError = true)]
public static extern int GetProcAddress(
IntPtr hModule, string lpProcName);
[DllImport("kernel32.dll", EntryPoint = "FreeLibrary", SetLastError = true)]
public static extern bool FreeLibrary(IntPtr hModule);