'Kinecter :: getCloud':这个功能无法编译为托管,请考虑使用#pragma unmanaged

时间:2013-02-22 10:50:55

标签: c++ unmanaged managed point-cloud-library

(“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也不起作用:(

1 个答案:

答案 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#上创建一个镜像版本。