由于ogre1.6实现了自己的debug new,跟mfc冲突,我尝试询问ogre官方是否有什么方法禁止ogre的debug new,但是得到的答复是不可以。貌似官方很鄙视mfc的内存漏洞检测机制。
不得已只能禁止mfc的了。
但是,很多人用了mfc的扩展库,比如我,修改很麻烦,如果只是删掉自己代码中的#defin new DEBUG_NEW,每次运行完后,都有大量的内存漏洞报告。我的程序多大好几万,慢到死了。
嗯,白痴方法,自然就是禁掉自己代码中的所有的#defin new DEBUG_NEW
然后在 CApp的构造函数中加入AfxEnableMemoryTracking(FALSE);
禁止mfc报告内存漏洞,虽然每次依然还有300多个内存漏洞,(因为CApp不是最先创建的对象)但是总比原来上万强。
这样做的结果就是内存漏洞你要自己找了。。。对编码能力要求很高。
至于这个方法的其他缺点,目前我还没有遇到。
ps:希望有高手能指点正统的方法。
本文讨论了Ogre1.6与MFC在内存管理上的冲突问题,特别是debugnew定义导致的问题。作者尝试联系Ogre官方但未获得解决方案,最终通过禁用MFC的内存跟踪来减少内存泄漏报告。
4782

被折叠的 条评论
为什么被折叠?



