关于全局变量内存泄漏的误报和解决方案

现象:全局变量是个类对象,析构的时候会释放内存。但系统会误报内存泄漏。
原因:报告比析构早,释放的时候已经报告完了。
解决:至少有以下三个解决方案:

1.使用#pragma comment(lib, “xxx.lib”) 而不使用设置里的“附加依赖项”。
这个具体细节应该是编译器实现的原因,但至少不误报了。
测试环境vs2017,测试了一个第三方样例,一个自己的Demo,结果一致。
(开始报内存泄漏,找了半天才发现是误报,当时有一种骂人的冲动)

2.全局变量用裸指针,提供初始化反初始化函数(全局智能指针没试过,也不想用)
(这个是我一直的方案)

3.无视之
(you ox you use,反正我不用此方案)

你可能感兴趣的:(C/C++,MFC)