OpenNI 1.5 :: Не удалось запустить код из документации

Я пытаюсь запустить образец кода из документации OpenNI 1.5. Я импортировал необходимую библиотеку XnCppWrapper.h, чтобы я мог использовать C ++. В коде есть только одна ошибка в конкретной переменной "bshouldrun". Я знаю, что это должно быть объявлено как что-то, но поскольку я новичок в этом, а документация не содержит ничего выше основного, я не знаю, как это объявить ... Пожалуйста, помогите !! И заранее спасибо.

 #include <XnOpenNI.h>
 #include <XnCppWrapper.h>
 #include <stdio.h>

int main()
  {

    XnStatus nRetVal = XN_STATUS_OK;

    xn::Context context;

   // Initialize context object
   nRetVal = context.Init();
   // TODO: check error code

   // Create a DepthGenerator node
   xn::DepthGenerator depth;
   nRetVal = depth.Create(context);
   // TODO: check error code

   // Make it start generating data
   nRetVal = context.StartGeneratingAll();
   // TODO: check error code

   // Main loop
   while (bShouldRun) //<-----------------------------**ERROR;bShouldRun Undefined**
   {
       // Wait for new data to be available
       nRetVal = context.WaitOneUpdateAll(depth);
       if (nRetVal != XN_STATUS_OK)
      {
          printf("Failed updating data: %s\n", xnGetStatusString(nRetVal));
          continue;
      }

       // Take current depth map
       const XnDepthPixel* pDepthMap = depth.GetDepthMap();

       // TODO: process depth map
   }

   // Clean-up
   context.Shutdown();

   }

person KuroNeko    schedule 22.06.2013    source источник
comment
Как называется образец OpenNI 1.5, который вы пытаетесь скомпилировать?   -  person George Profenza    schedule 22.06.2013
comment
Я не думаю, что это в папке с образцами. Я использовал это из руководства пользователя OpenNI, оно называется Основные функции: инициализация, создание узла и чтение данных.   -  person KuroNeko    schedule 22.06.2013
comment
Как насчет того, чтобы попытаться скомпилировать один из более простых примеров, поставляемых с OpenNI, и как только вы это сделаете, приступите к его модификации?   -  person George Profenza    schedule 22.06.2013
comment
Я только что попробовал образец SimpleViewer, и теперь он говорит, что не могу найти файл afxres.h. Мне что-то не хватает в плане установки?   -  person KuroNeko    schedule 22.06.2013
comment
Я использую Windows 7   -  person KuroNeko    schedule 22.06.2013
comment
А что вы используете для компиляции? (VisualStudio / Qt / CodeBlocks / Makefiles / и т. Д.)   -  person George Profenza    schedule 23.06.2013
comment
Я использую Visual Studio 2010 для компиляции   -  person KuroNeko    schedule 24.06.2013
comment
Я просто пытался скомпилировать образцы из OpenNI2, а не из OpenNI 1.5 .. работает только программа просмотра образцов. В остальном он говорит, что не может найти соответствующий файл .lib .. Например, для simplehandtracker он говорит: «Не удалось найти SimpleHandTracker. lib. Вы знаете, почему?   -  person KuroNeko    schedule 24.06.2013
comment
См. Ответ ниже   -  person George Profenza    schedule 24.06.2013


Ответы (1)


Вот что я сделал, чтобы запустить образец из Visual Studio 2010 Express в Windows (8):

  1. Открыл проект NiSimpleViewer.vcxproj VS2010 из C: \ Program Files (x86) \ OpenNI \ Samples \ NiSimpleViewer
  2. Отредактировал OpenNI.rc, чтобы закомментировать #include "afxres.h" в строке 10 (может отсутствовать, потому что я использую версию Express, не уверен. Ваша машина может скомпилировать этот штраф / не жаловаться на отсутствующий файл заголовка)
  3. Включено Инструменты> Параметры> Отладка> Символы> Серверы символов Microsoft (чтобы решить проблему с отсутствующими файлами pdb).
  4. При желании отредактируйте SAMPLE_XML_PATH на "SamplesConfig.xml", а не на "../../../Data/SamplesConfig.xml" по умолчанию, в противном случае вам нужно запустить образец исполняемого файла из .. \ Bin \ Debug \ NiSimpleViewer.exe, перейдя туда, а не используя Ctrl + F5. A; скопируйте файл SamplesConfig.xml в папку с образцами, как вы можете видеть ниже.

Вот несколько изображений, иллюстрирующих некоторые из вышеперечисленных шагов: remove afxres.h

Серверы символов Microsoft включают

ОБРАЗЕЦ мода ПУТЬ XML

Образец xml, скопированный в папку

Вы также можете скомпилировать образец NiHandTracker, который звучит ближе к тому, что вам нужно. Итак, это объясняет настройку OpenNI 1.5, о которой ваш вопрос.

Я заметил в комментариях вашу проблему с библиотекой OpenNI 2. Это должен быть вопрос связывания с SimpleHandTracker.lib, что вы можете сделать через Свойства проекта (щелкните правой кнопкой мыши проект-> выберите Свойства)> Компоновщик> Ввод> Дополнительные зависимости> Изменить.  lib linking У меня нет установки OpenNI2 на этом компьютере, но предполагая, что SimpleHandTracker.lib будет в OpenNI_INSTALL_FOLDER \ Lib. Попробуйте поискать в файлах, если я ошибаюсь.

person George Profenza    schedule 24.06.2013