Violation d'accès lors de la lecture de l'emplacement 0x000
Bonjour,
j'ai un problème dont je connais ni la cause ni la solution.
J'essayes de compiler un programme que j'ai trouver sur internet, c'est un programme pour la kinect il est en c++.
j'ai fait toutes les configuration concernant la liaison de la kinect avec visual c++ 2012. Quand je compile, y a un message d'erreur qui apparaît :
Exception non gérée à 0x0F20902A (OpenNI2.dll) dans ConsoleApplication3.exe*: 0xC0000005*: Violation d'accès lors de la lecture de l'emplacement 0x00000000.
voilà le code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
#include "stdafx.h"
#include <iostream>
#include "OpenNI.h"
int main( int argc, char** argv )
{
//
openni::OpenNI::initialize();
//
openni::Device devAnyDevice;
devAnyDevice.open( openni::ANY_DEVICE );
//
openni::VideoStream streamDepth;
streamDepth.create( devAnyDevice, openni::SENSOR_DEPTH );
streamDepth.start();
//
openni::VideoStream streamColor;
streamColor.create( devAnyDevice, openni::SENSOR_COLOR );
streamColor.start();
//
openni::VideoFrameRef frameDepth;
openni::VideoFrameRef frameColor;
for( int i = 0; i < 1000; ++ i )
{
//
streamDepth.readFrame( &frameDepth );
streamColor.readFrame( &frameColor );
//
const openni::DepthPixel* pDepth
= (const openni::DepthPixel*)frameDepth.getData();
const openni::RGB888Pixel* pColor
= (const openni::RGB888Pixel*)frameColor.getData();
//
int idx = frameDepth.getWidth() * ( frameDepth.getHeight() + 1 ) / 2;
std::cout << pDepth[idx] << "( "
<< (int)pColor[idx].r << ","
<< (int)pColor[idx].g << ","
<< (int)pColor[idx].b << ")"
<< std::endl;
}
//
streamDepth.destroy();
streamColor.destroy();
//
devAnyDevice.close();
//
openni::OpenNI::shutdown();
return 0;
} |