CString多线程内存泄露疑惑
来源:互联网 发布:php基础教程 第5版 pdf 编辑:程序博客网 时间:2024/05/18 22:11
今天在调试程序时候,vld检查到CString的内存泄露,总过有6处。多发生在Format调用处,共同点是在程序的一个线程中。
线程创建时传入的参数是CString的地址指针,开始以为是指针引用有问题,于是开始在网上搜。
贴1:http://blog.csdn.net/red_hope/article/details/1729937。作者的经验是:针对vc6.0,如果多次调用带有CString引用的参数的函数(形如:funstr(CString &str);这样的函数),在一定的时候(和字符串长度有关系),CString的内部引用记数器发生记数混乱,造成内存泄露。
贴2:http://www.cppblog.com/alantop/archive/2008/07/10/55786.html。这里面说CString存在多线程安全问题,解决方法略显高端,lz并未说清楚情况,评论中提到线程是否完全退出。
贴3:http://hi.baidu.com/0_00_000/item/5f910e483c30e42810ee1e05。供参考
针对以上情况,进行测试,本人的环境是VS10,该线程在程序中是whilie循环,不会结束。
1、将线程中代码放入主程序中,程序完成,无泄漏。确认代码问题。
2、在线程中注释掉while等操作,程序结束,无泄漏。确认为线程未退出造成。
不同编译环境,MFC版本不同,请参考:http://blog.csdn.net/felomeng/article/details/6308731,VS版本与ATL、MFC版本对比。
0 0
- CString多线程内存泄露疑惑
- CString内存泄露
- CString内存泄露的解决办法
- 多线程内存泄露
- 多线程内存泄露
- CString.AllocSysString(),BSTR,_bstr_t的内存泄露
- 关于多线程内存分配的疑惑
- 关于CString的AllocSysString函数的内存泄露
- 关于 MFC 中 CString 内存泄露的问题
- 关于 MFC 中 CString 内存泄露的问题
- CString用不好,真的是有内存泄露的
- CString使用AllocSysString函数时发生内存泄露
- 多线程中CString内存泄漏的解决方法。
- 内存疑惑
- 学习多线程代码遇到内存泄露
- linux多线程编程内存VIRT内存泄露问题
- 使用同步对象避免多线程退出时内存泄露
- Unicode的设置不一致,导致CString的使用有内存泄露
- Systick的应用
- Linux 系统资源监控常用命令
- 第4周作业-数学学习工具;第4周作业-打字成绩判断程序
- fwrite和fread函数的用法小结
- 好的用户界面:界面设计的一些技巧
- CString多线程内存泄露疑惑
- 快速排序和插入排序的C++实现
- Asynctask解析
- 虚拟化技术漫谈
- 通过signapk.jar 为Android 应用程序签名,并优化签名后的APK应用程序
- Command Injection
- Java EE项目中的异常处理
- 自定义log4j生成的log文件名
- C++错误:“__w64 unsigned int”的前面应有“;”