您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> C/C++ >> 内存加载dll,dll结束时不能释放dll的内存。

内存加载dll,dll结束时不能释放dll的内存。

来源:网络整理     时间:2016/8/27 6:31:39     关键词:

关于网友提出的“ 内存加载dll,dll结束时不能释放dll的内存。”问题疑问,本网通过在网上对“ 内存加载dll,dll结束时不能释放dll的内存。”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 内存加载dll,dll结束时不能释放dll的内存。
描述:

内存加载dll内存泄露重复加载dlldll间通信memoryfreelibrary

          客户端只有一个和服务端连接的功能,要实现其他功能就需要将插件传送到客户端,这个插件dll传送过去不是写成文件,而是分配一块缓冲区接收,然后用memoryloadlibrary从缓冲区加载起来,然后socket连接也在这个dll中,总之插件包含了他想实现的所有功能,但是这时不可以memoryfreelibrary,因为插件dll中包括socket连接和他所实现的功能,如果此时调用memoryfreelibrary,这个插件的功能就没有了。
          这样问题来了:插件dll退出时,主进程也不知道,分配的缓冲区没有释放,由于没有调用memoryfreelibrary()这个函数,那么memoryfreelibrary()这个函数中自己分配的内存也释放不了。
         下次需要此插件dll的时候,还会再次进行一下上面的操作,又会浪费内存,而且插件还很多,这样不释放内存肯定不行。
         所以希望大牛们给点意见,我的想法是如果一个插件dll发送过来了我就不释放缓冲区了,下次再发送此插件的时候只要判断相同就不接收了,还省事。但是发送过来dll是为了加载起来啊,但是加载起来后我还没办法释放,这就是我的问题所在了。

以上介绍了“ 内存加载dll,dll结束时不能释放dll的内存。”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3626590.html

相关图片

相关文章