Я изменил пример Kinect, написанный на C ++, так, чтобы новый код извлекал как скелет, так и данные о цвете, в то время как оригинал получал только данные о скелете. Я понял, что код не может вызвать метод ProcessColor, который я реализовал для обработки данных о цвете. Когда я исследовал проблему, я увидел, что указанная строка следующей части (которая принадлежит функции init) не работает. Во время процесса отладки, когда я прихожу к этой строке, программа возвращается к методу ProcessColor и впоследствии выдает ошибку.
if(NULL!=kinectSensor)
{
// line that fails is the following
hr = kinectSensor->NuiInitialize(NUI_INITIALIZE_FLAG_USES_COLOR);
if (SUCCEEDED(hr))
{
// Create an event that will be signaled when color data is available
m_hNextColorFrameEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
// Open a color image stream to receive color frames
hr = kinectSensor->NuiImageStreamOpen(
NUI_IMAGE_TYPE_COLOR,
NUI_IMAGE_RESOLUTION_640x480,
0,
2,
m_hNextColorFrameEvent,
&m_pColorStreamHandle);
}
}
Ниже я указал строку, по которой он прыгает:
HRESULT hr;
NUI_IMAGE_FRAME imageFrame;
HANDLE m_hNextColorFrameEvent(INVALID_HANDLE_VALUE), m_pColorStreamHandle(INVALID_HANDLE_VALUE);
// Line that it jumps
hr = kinectSensor->NuiImageStreamGetNextFrame(m_pColorStreamHandle, 0, &imageFrame);
И сообщение об ошибке следующее:
Необработанное исключение в 0x5ca5b4a6 в KinectSample.exe: 0xC0000005: Местоположение чтения нарушения доступа 0x00000047.
Если это поможет, я хочу указать, что я добавил часть, показанную выше, из официального примера Kinect (ColorBasics-D2D), и вполне вероятно, что есть столкновение или что-то еще, хотя я был очень осторожен во время процесса.
Как я могу решить это?
Какие-нибудь мысли?
Задача ещё не решена.
Других решений пока нет …