1

私は C++ の初心者で、Kinect V2 と libfreenect2 をいじり始めました。ライブラリの構築はうまくいったと思います。しかし、コードで使用しようとすると、いくつかの奇妙な例外が発生します。

Freenect2 freenect2;
std::string serial="";
Freenect2Device *dev = 0;

freenect2.enumerateDevices();
serial = freenect2.getDefaultDeviceSerialNumber();
dev = freenect2.openDevice(serial);

このコードを実行するたびに、シリアル番号 [serial = freenect2.getDefaultDeviceSerialNumber();] の取得に失敗します:

「未処理の例外がスローされました: 読み取りアクセス違反。

_Pnext は 0xFFFFFFFFFFFFFFFF でした。」

私が使用している場合

Freenect2 freenect2;
Freenect2Device *dev = 0;
SyncMultiFrameListener listener(Frame::Color);
FrameMap frames;

freenect2.enumerateDevices();
dev = freenect2.openDefaultDevice();
dev->setColorFrameListener(&listener);
dev->start();

listener.waitForNewFrame(frames)

代わりに、新しいフレーム [listener.waitForNewFrame(frames)] の待機中に失敗し、次の例外がスローされます。

"ConsoleApplication1.exe の 0x000000018026D0C2 (ig75icd64.dll) で例外がスローされました: 0xC0000005: アクセス違反書き込み場所 0x000000002BA0D700"

それで、私は何を間違っていますか、どうすればそれを改善できますか?

アドバイスありがとうございます。

編集:コードを短くしました...

4

1 に答える 1