gpt4 book ai didi

c# - 处理对象时是否应该释放已加载的模块?

转载 作者:太空宇宙 更新时间:2023-11-03 22:16:45 25 4
gpt4 key购买 nike

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

最佳答案

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

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

关于c# - 处理对象时是否应该释放已加载的模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4842733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com