DEBUG_NEW 导致编译失败的问题

本文介绍了一种在C++项目中因宏定义new为DEBUG_NEW而导致的编译错误,并提供了详细的解决方案。通过调整宏定义的位置避免了编译器无法匹配new操作符的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

出错提示error C2665: 'operator new' : none of the 5 overloads could convert all the argument types

 

winxp+vs2005

 

在其他机器上debug版与release版本都可以编译成功

在本机编译不过,怀疑是VS2005有问题,事实上不是的,

 

 

a.h 中定义

#define new DEBUG_NEW

 

然后,b.h 中
#include "a.h"

b.cpp

 

#include "b.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

然后就编译不过啦

找到原因就好说啦,在a.h中,删除

#define new DEBUG_NEW就可以啦

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值