OSG嵌入到MFC中报内存泄露

本文探讨了OSG嵌入到MFC应用中出现内存泄露的假象,实际上是由于MFC DLL卸载时检测到OSG DLL中未释放的对象。解决方法是调整MFC项目的配置,使其先于OSG加载,并确保添加正确的MFC库依赖。然而,这样做可能会导致崩溃或链接错误。对于崩溃问题,需确保添加的库与字符集匹配;对于链接错误,可通过指定不同入口函数解决。
摘要由CSDN通过智能技术生成

      这篇博文在半年以前就想写,但是网上有很多的答案,能够解决我所遇见的问题,加之自己对OSG和MFC的理解浅薄,所有就一直没有动笔,但是这周又遇见了OSG和MFC结合报内存泄露的问题,解决的方法和以前的一样,但是由此引发的问题貌似网上没有给出有效的解决方法,所以在前辈的基础上写点东西,希望能够帮上遇见同样问题的朋友们。

     OSG和MFC结合造成表面上的内存泄露,其实是一种假象,真正是没有内存泄露的。那为什么会出现这样的问题,根据前辈们的解释如下:由于在MFC的dll卸载时会调用内存检测函数,此时OSG的dll也许并没有卸载掉,这样就会被检测到new的对象没有释放,也就出现了开始的内存泄露不止。具体的参考此博客文章(谢谢这位仁兄):http://blog.sina.com.cn/s/blog_4bef16b901015ffx.html。那解决的办法自然是将MFC的dll先于OSG的dll加载,这样卸载是就在OSG的dll后面卸载,这样在卸载MFC的dll是检测内心泄露,而OSG的dll早卸载掉,自然就没有报内存泄露,方法如下:

           Goto project settings. In there, make the following changes for theDebug build.
  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值