点云技术相关产学研社区

 找回密码
 立即注册加入PCL中国点云技术相关产学研社区

扫一扫,访问微社区

查看: 3127|回复: 3

MFC法向量计算 调试问题

[复制链接]
发表于 2015-5-27 08:36:46 | 显示全部楼层 |阅读模式
第一个问题:
关于“估计点云法向量的问题”,参看PCL官网例程“features->how 3D features work in PCL.自己新建一个MFC单文档程序(PCL编译、安装没有问题,配置也没有问题),新建一个菜单项(消息响应选择Mainfrm类),在Mainfrm.h文件包含PCL响应头文件,在Mianfrm.cpp的菜单消息响应函数中,编写计算法向量的代码(参照例程),选择Debug(X64)编译,出现如下问题:
查阅网上资料,说是min和max冲突问题,根据网络解决办法,在Mainfrm.h开头添加“#define NOMINMAX”,编译失败(问题如前)。另一种方法,在工程属性页配置里面,在预处理器定义中添加“NOMINMAX”,编译还是失败。
关于min()和max()定位错误,主要出现在eigen.hpp文件中,在其头文件开头处,发现有关于min和max的定义问题处理机制,但是还是报错,如下图所示:
故,请教一下这个问题如何解决?谢谢。附Mainfrm.h和Mainfrm.cpp部分截图,如下所示:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册加入PCL中国点云技术相关产学研社区

x
回复

使用道具 举报

发表于 2015-5-28 16:53:14 | 显示全部楼层
主要是与WIN32下定义冲突出现二义性,你可以试试在程序中加入
#if defined (WIN32)
#undef max
#undef min
#endif
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-28 17:40:30 | 显示全部楼层
谢谢你!我在头文件中包含了上述代码,编译通过了,谢谢!

不过我还有一个问题:
头文件:在头文件new一个pcl指针如“pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>)”,“new”错误提示"expected a type specifier";在头文件中声明pcl指针,出现这个问题怎么解决?
cpp文件:如果在cpp文件new一个pcl指针,则也是提示相同错误,但在cpp文件中,我在cpp文件开头位置,把工程自动生成的代码段"#ifdef _DEBUG  #define new DEBUG_NEW #endif"中的"//#define new DEBUG_NEW"注释掉,则在cpp文件中声明没问题,请教下是这样解决的吗?或者还有其他正确解决办法?

谢谢!以上两个问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-28 17:40:52 | 显示全部楼层
pigeon1989 发表于 2015-5-28 16:53
主要是与WIN32下定义冲突出现二义性,你可以试试在程序中加入
#if defined (WIN32)
#undef max

谢谢你!我在头文件中包含了上述代码,编译通过了,谢谢!
不过我还有一个问题:
头文件:在头文件new一个pcl指针如“pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>)”,“new”错误提示"expected a type specifier";在头文件中声明pcl指针,出现这个问题怎么解决?
cpp文件:如果在cpp文件new一个pcl指针,则也是提示相同错误,但在cpp文件中,我在cpp文件开头位置,把工程自动生成的代码段"#ifdef _DEBUG  #define new DEBUG_NEW #endif"中的"//#define new DEBUG_NEW"注释掉,则在cpp文件中声明没问题,请教下是这样解决的吗?或者还有其他正确解决办法?

谢谢!以上两个问题。
回复 支持 反对

使用道具 举报

本版积分规则

QQ|小黑屋|点云技术相关产学研社区 ( 陕ICP备13001629号 )

GMT+8, 2024-5-6 18:02 , Processed in 1.375557 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表