我是一名有用的助手,可以为您翻译文本。
我有一个内存泄漏问题,正在尝试在我的MFC程序中找到它。通常,我会执行以下操作:
头文件
我有一个内存泄漏问题,正在尝试在我的MFC程序中找到它。通常,我会执行以下操作:
头文件
// Leak Detection
#if defined(WIN32) && defined(_DEBUG)
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
#endif
CPP文件
// Leak detection
#if defined(WIN32) && defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
#ifdef DEBUG_NEW
#undef DEBUG_NEW
#endif
#define DEBUG_NEW new( _NORMAL_BLOCK, __FILE__, __LINE__ )
#define new DEBUG_NEW
#endif
这种技术在大多数文件中都很有效,但是当我将其包含在某些文件中,例如我的文档中时,会出现错误:error C2661: 'CObject::operator new' : no overloaded function takes 4 arguments
这里的解决方案是什么?我应该在某个地方取消定义new吗?
谢谢!
#define new DEBUG_NEW
调用了未定义的行为(如果我记得正确的话)。 - Nawaz