查看: 1948|回复: 7

VC2010下编译的Debug版本osgMFC仍然存在内存泄露,怎样解决呀?

[复制链接]

该用户从未签到

发表于 2011-8-28 10:42:39 | 显示全部楼层 |阅读模式
在网上搜了一下,说是osgd.dll后于mfcXXd.dll释放,导致mfc误认为osg中全局变量没有释放,并给出了解决办法:

  i) in the General tab, switch "Use MFC in a shared DLL" to "Use Standard Windows Libraries"
  ii) in the C/C++/Preprocessor tab, add _AFXDLL to the preprocessor definitions
  iii) in the Linker/Input tab, add mfc71d.lib anywhere before osgd.lib

可是我在VC2010中按那三步修改之后,没向OSG中添加任何节点,仍然存在内存泄露:
  1. Detected memory leaks!
  2. Dumping objects ->
  3. {409742} normal block at 0x038F7E90, 12 bytes long.
  4. Data: < } P} > 90 17 83 03 08 7D 8F 03 50 7D 8F 03
  5. {409741} normal block at 0x038F7E48, 8 bytes long.
  6. Data: <\} > 5C 7D 8F 03 00 00 00 00
  7. {409740} normal block at 0x038F7D50, 184 bytes long.
  8. Data: <T(j H~ > 54 28 6A 0F 00 00 00 00 01 00 00 00 48 7E 8F 03
  9. {409739} normal block at 0x038F7D08, 12 bytes long.
  10. Data: < ~ { { > 90 7E 8F 03 80 7B 8F 03 C8 7B 8F 03
  11. {409738} normal block at 0x038F7CC0, 8 bytes long.
  12. Data: < { > D4 7B 8F 03 00 00 00 00
  13. {409737} normal block at 0x038F7BC8, 184 bytes long.
  14. Data: <T(j | > 54 28 6A 0F 00 00 00 00 01 00 00 00 C0 7C 8F 03


  15. ………………………………………………………………………………………………………………………………



  16. {539} normal block at 0x002B95F0, 8 bytes long.
  17. Data: <@ + > 40 95 2B 00 00 00 00 00
  18. {538} normal block at 0x002B95A8, 8 bytes long.
  19. Data: < + > 10 95 2B 00 00 00 00 00
  20. {537} normal block at 0x002B94A8, 196 bytes long.
  21. Data: <$ > 24 05 18 10 00 00 00 00 07 00 00 00 00 00 00 00
  22. Object dump complete.
复制代码


请问在VC2010里要怎样才能解决OSG内在泄露的问题呀?

另外,还想问两个问题:
1、我的OSG编译时使用了UTF-8支持,那么在osgMFC中是不是也必须设置“使用 Unicode 字符集”?如果设置成“使用多字节字符集”会出现什么问题吗?
2、网上说通过上面的三步修改Debug设置后,必须设置“使用多字节字符集”,如果设置“使用 Unicode 字符集”则会报error LNK2019的链接错误。怎样解决在“使用 Unicode 字符集”时的链接错误呀?

请高手帮帮忙啊!不胜感激。

该用户从未签到

发表于 2011-8-28 21:17:29 | 显示全部楼层
同问,感觉这个地方蛮头痛的。

该用户从未签到

发表于 2011-8-29 08:59:30 | 显示全部楼层
这个实际上并不存在内存泄露的问题,您不必纠结于它的错误提示
UTF-8支持和Unicode字符集没有直接关系

该用户从未签到

 楼主| 发表于 2011-8-29 09:35:16 | 显示全部楼层
回复 3# array

那也就是说这个内存泄露可以不用理会是吗?这就有一个问题了,以后我在mfc中使用osg,如果真的是我的代码处理不当造成的内存泄露,我又如何分辨呢?

该用户从未签到

发表于 2011-8-30 08:37:31 | 显示全部楼层
可以不理会,检查内存泄露也完全可以用更好的工具来完成

该用户从未签到

 楼主| 发表于 2011-8-30 18:33:41 | 显示全部楼层
回复 5# array

那就有劳给推荐几个好用的内存泄露检测工具吧,谢谢!

该用户从未签到

发表于 2011-8-31 08:39:12 | 显示全部楼层
google查“内存泄露检测工具”

该用户从未签到

发表于 2011-9-1 14:08:11 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表