(“Functon”是编译错字不是我的:P)
我的问题,
我需要做的是从pcl unmanaged C ++获取pointcloud(XYZRGBA)数据到C#。 我使用以下代码执行此操作:
Unmanaged.cpp(C ++)
float* getCloud(int clr_width, int clr_height, int dpth_width,
int dpth_height, int frameId, int clr_focal_x, int clr_focal_y,
int dpth_focal_x, int dpth_focal_y, unsigned char *image,
unsigned char *depth_image) const
{
(some implementation);
}
END OF Unmanaged.cpp
Managed.cpp(C ++)
property float[]^ Receiver
{
float[]^ get()
{
return gcnew float[]( Unmanaged->getCloud((int)clr_width,
(int)clr_height, (int)dpth_width, (int)dpth_height, (int)frameId,
(int)clr_focal_x, (int)clr_focal_y, (int)dpth_focal_x,
(int)dpth_focal_y, (unsigned char*)image,
(unsigned char*)depth_image) );
}
}
结束了Managed.cpp
我得到的是标题中的错误: 'Kinecter :: getCloud':这个功能无法编译为托管,请考虑使用#pragma unmanaged
有人知道如何解决这个问题吗?
顺便说一下:建议:#pragma unmanaged也不起作用:(答案 0 :(得分:0)
我修复了它,结果发现它与这段代码无关 - .-
云的创造遇到了麻烦。 (对于PCL用户)
cloud->sensor_origin_.setZero (); // BUGGY
cloud->sensor_orientation_.w () = 0.0;
cloud->sensor_orientation_.x () = 1.0;
cloud->sensor_orientation_.y () = 0.0;
cloud->sensor_orientation_.z () = 0.0;
return (cloud);
我想我不能发送一个pointcloud,除非我在C#上创建一个镜像版本。