0

(「Functon」はコンパイラのタイプミスであり、私のものではありません:P)

私の質問、

私がする必要があるのは、ポイントクラウド(XYZRGBA)データをpclアンマネージC ++から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);
}

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':この関数はマネージとしてコンパイルできません。#pragmaunmanagedの使用を検討してください

誰かがこれを修正する方法を知っていますか?

ところで:提案:#pragmaunmanagedも機能しません:(

4

1 に答える 1

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);

C#でミラーバージョンを作成しない限り、ポイントクラウドを送信できないと思います。

于 2013-02-25T11:54:58.903 に答える