在处理对象时我应该释放一个加载的模块吗?

时间:2011-01-30 11:54:01

标签: c# .net com-interop dispose

我正在使用此方法加载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>

1 个答案:

答案 0 :(得分:4)

当您使用使用FreeLibrary加载的DLL完成后,应该调用LoadLibrary。这不会是一个问题,除非您的应用程序长时间运行并且您加载了许多这些DLL,或者除非您想要更新磁盘上的DLL(只要它被加载就会被锁定)。

顺便问一下,为什么使用LoadLibrary加载COM DLL而不使用TLBIMP来创建.NET可访问的包装器?