C#引用C++的DLL的问题

Magicwords 2010-01-12 07:40:19
用.net 2008开发的web程序,在IIS中布署了,里面有引用了一个C++的DLL,但是我关掉页面后,web站点里的所有东西除了这个C++的DLL外都能删除掉,但是就是这个不能删除,我换了个非常简单的C++的DLL,就是返回一个int型的值,但是还是一样的删不掉,

[DllImport("Location.dll")]
public static extern int fnLocation();

C#中使用这样的方式引用,请问为什么那个C++的DLL删除不掉了,其它的都可以删,而且这个C++的DLL只是返回一个int型的值,是不是调用的地方要做些什么,或者要手动释放这个引用?请达人指点下
...全文
66 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Magicwords 2010-01-12
  • 打赏
  • 举报
回复
使用[DllImport("Location.dll")]
public static extern int fnLocation(); 的方式是不是就无法做到?

只能通过使用动态加载DLL,使用Windows API函数:LoadLibrary、GetProcAddress以及FreeLibrary

难道只能通过这种方式吗?如果我使用dllimiport的方式了,?
使用[DllImport(Kernel32)]还不是Kernel32就无法释放,只不是他是系统的,没人去管,,
Magicwords 2010-01-12
  • 打赏
  • 举报
回复
DLLWrapper.FreeLibrary(hModule);

这个hModule如何来的?
vrhero 2010-01-12
  • 打赏
  • 举报
回复
非托管资源没有释放...如1楼手动释放或重启应用程序池...
qqzeng-ip 2010-01-12
  • 打赏
  • 举报
回复
.NET并不能自动释放动态加载的DLL,因此使用完DLL后应该自己释放DLL: 
DLLWrapper.FreeLibrary(hModule);

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧