我正在使用此方法加载COM dll:
[DllImport("kernel32", CharSet = CharSet.Unicode, SetLastError = true)]
private extern static IntPtr LoadLibrary(string librayName);
我应该使用以下方式发布dll:
[DllImport("kernel32", SetLastError = true)]
private static extern bool FreeLibrary(IntPtr hModule);
或者让应用程序终止处理它?</ p>
答案 0 :(得分:4)
当您使用使用FreeLibrary
加载的DLL完成后,应该调用LoadLibrary
。这不会是一个问题,除非您的应用程序长时间运行并且您加载了许多这些DLL,或者除非您想要更新磁盘上的DLL(只要它被加载就会被锁定)。
顺便问一下,为什么使用LoadLibrary
加载COM DLL而不使用TLBIMP来创建.NET可访问的包装器?