本文主要是介绍一种MFC误报动态库中内存泄露的处理方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
关于MFC误报动态库中的内存泄露,在这篇文章中有比较详细的解释:关于DLL工程中存在全局变量可能导致MFC内存泄露误报的原因分析及解决办法。认为这种原因是因为MFC的dll早于调用的dll卸载,在MFC的dll泄露时会打印出当前尚未释放的内存,认为这些内存泄露,但事实上当后来真正卸载调用动态库时是正确做了内存清理的。因此文章中认为这个问题是隐式的动态库卸载顺序造成的。解决办法是重新配置调用的dll,让其依赖于MFC,这样在卸载时会先卸载调用dll,再卸载MFC dll,这样就不会误报。
针对我现在的实际情况,动态库确实也不需要修改为依赖于MFC,动态库中的对象是单例模式,那比较好的方式是在程序退出前以适当的方式告诉动态库进行一次deInit()就好了。
另外还有一个办法就是在主程序中显式加载和释放动态库。
这篇关于一种MFC误报动态库中内存泄露的处理方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!