我有一个内存泄漏,我试图在我的mfc程序中搜索。通常,我会做一些这样的:错误C2661:'CObject :: operator new':没有重载的函数需要4个参数
头文件
// 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
这种技术适用于大多数的文件,但是当我将其包含在一些文件,比如我的文件,我得到的错误:错误C2661:'CObject :: operator new':没有重载的函数需要4个参数
这里的解决方案是什么?我应该在#什么地方找到新东西吗?
谢谢!
迂回地说'#define new DEBUG_NEW'调用未定义的行为(如果我正确记得)。 – Nawaz
@Nawaz:它似乎对其他类很好。检测内存泄漏实际发生的正确方法是什么?这似乎是“微软推荐的解决方案”。大多数探查者用我的代码做一些有趣的事情。 – Jordan
正确的做法是为您的班级或全局替换新的和删除的操作符。 –