当前位置:  开发笔记 > 编程语言 > 正文

"#define new DEBUG_NEW"和"#undef THIS_FILE"等实际上是否必要?

如何解决《"#definenewDEBUG_NEW"和"#undefTHIS_FILE"等实际上是否必要?》经验,为你挑选了1个好方法。

创建新的MFC应用程序时,向导会在几乎每个CPP文件中创建以下代码块:

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

有时候它也增加了这个:

#undef THIS_FILE
static char THIS_FILE[] = __FILE__;

如果它是多余的,我想从我的CPP文件中删除此代码.我在VS2008上使用带有C++/CLI的MFC应用程序.

从CPP中删除此代码后,我尝试在Debug中运行,它似乎工作正常."新"变量工作正常,没有泄漏,ASSERT对话框显示正确的文件名并跳转到违规行.

任何人都可以告诉我它的作用以及删除它是否安全?



1> Mark Ransom..:

删除它是完全安全的.这是一个调试辅助工具; 将其保留将在程序退出时出现的任何内存泄漏的输出窗口中生成警告.


对不起,我只是意识到您所说的话很微妙-当代码在那里时,输出窗口显示文件名和包含内存泄漏的行,而不是仅仅显示内存泄漏。
我相信THIS_FILE是DEBUG_NEW用来获取它用于泄漏报告的源文件名的东西.
推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有