2014年6月9日星期一

error C2661: 'pcl::PointCloud::operator new' : no overloaded function takes 3 arguments

在 MFC 程序中使用如下语句时

pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGB>);
pcl::PointCloud<pcl::Normal>::Ptr normal(new pcl::PointCloud<pcl::Normal>);

编译的时候会出现如下错误

error C2661: 'pcl::PointCloud<PointT>::operator new' : no overloaded function takes 3 arguments

google 一番发现这是因为 MFC wizard 为了跟踪内存分配在每个 MFC .cpp 中都加了以下三句话

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

重新定义了 new,因此把每个 MFC .cpp 中的这三句屏蔽掉就可以编译通过了。

没有评论:

发表评论