用.net 写了一个调用组件的服务. 这个服务调用DLL的函数来实现一定的功能.具体是每个小时调用一次d l l .
现在有一个问题.组件调用DLL,DLL中函数的一些开销占用一定的资源,可能还有内存泄漏.而且服务不能停,DLL中的资源不能释放. 时间长了就把内存占慢了.
请问各位大虾:如何能够使得服务不停,在调用完DLL函数后将DLL所占用的开销全部释放调.当服务下一个小时调用DLL时重新分配资源呢?
现在有一个问题.组件调用DLL,DLL中函数的一些开销占用一定的资源,可能还有内存泄漏.而且服务不能停,DLL中的资源不能释放. 时间长了就把内存占慢了.
请问各位大虾:如何能够使得服务不停,在调用完DLL函数后将DLL所占用的开销全部释放调.当服务下一个小时调用DLL时重新分配资源呢?
解决方案 »
- MFC显示对话框的位置
- 如何在VC6中使popup菜单灰化
- 如何在MDI中设置字体颜色
- CEdit对象RANGE类消息处理的问题
- 在线等,怎样在别的类中修改CMainframe中的成员变量的值?
- PostQuitMessage(0);以后有没有必要return
- 如何在编译时引入ole32.lib???如何在com使用 win32的数据类型 ???
- 在线程中向对话框发送消息用什么.对话框又是怎么接收消息的?在线等待
- 如何判断一个字符串型变量是否可以转换成整型?
- vc资源编辑器的一个问题
- 与技术无关。谁来说说你的看法。
- 在VS.net里面,如果我的VC工程无法进入MFC代码进行跟踪,我应该如何处理??谢谢大家!一定结贴
难道就没有办法把DLL的资源释放嘛?
为什么普通的应用程序使用退出后资源可以被释放呢?而DLL被服务调用后就释放不了内存。
难道非要停掉服务嘛?
或者用内存检查工具,如boundCheck来检查哪些地方内存没有释放。
看看什么地方有不正常的 return break 什么地方goto后没有释放
实在没有办法解决问题的时候,看看能否将你的DLL包装成一个进程外的COM组件,每次调用都启动该进程外组件,调用外结束该进程,那不管是否有泄漏都可以将就对付,只是效率可能比较低.