弄了我一下午, 跟mfc的东西一搞起来就会出莫名其妙的问题. 记录一下:
*) 只要是link到了mfc的library, new/delete操作符只能作为成员被重载. 不然就会报redefinition的错.
*) 因为mfc的wizard通常会把new定义成DEBUG_NEW, 这也会造成麻烦(可以看afx.h, afxmem.cpp的源码), 报的错是redeclaration, 我就被这个折腾了一下午. 最后这么解决:
#undef new
void* CXXXXX::operator new(size_t nSize)
{
//...
}
#define new DEBUG_NEW
*) 然后有两个directive很有用:
#pragma push_macro("new") #pragma pop_macro("new")



