Intel Galileo и C++ REST SDK

Я успешно настроил свою плату Intel Galileo (Gen 2) с последним образом Windows IoT (12.02.2014). Я могу загрузить образ без каких-либо проблем, подключиться к нему через telnet и нормально запустить приложение «blink».

Я попытался запустить образец «Касабланка» и следовал инструкциям с http://ms-iot.github.io/content/Casablanca.htm. Когда я подключаюсь по телнету к плате Galileo и пытаюсь запустить консольное приложение, я вообще ничего не получаю. При попытке отладки из Visual Studio я вижу следующий вывод:

Исключение первого шанса по адресу 0x77CC342A (ntdll.dll) в WindowsIoTDemo.exe: 0xC0000139: точка входа не найдена. Программа «[2016] WindowsIoTDemo.exe» завершила работу с кодом -1073741511 (0xc0000139) «Точка входа не найдена».

Кто-нибудь смог запустить пример приложения Casablanca или вообще использовать C++ REST SDK в проекте Windows для IoT?


person Olaf    schedule 03.12.2014    source источник
comment
Вы собрали библиотеку без SSE2?   -  person Karthik Nishanth    schedule 04.12.2014
comment
Да, я сделал в соответствии с инструкциями в документации по образцу.   -  person Olaf    schedule 04.12.2014


Ответы (2)


У меня была такая же проблема при использовании последней версии Casablanca 2.3. Чтобы запустить образец, я использовал Casablanca 2.2:

  1. Поскольку, похоже, нет способа загрузить исходный код 2.3 из Codeplex, единственным способом, который я мог видеть, было использование Git:

    git clone https://git01.codeplex.com/casablanca

    Git-касса 9cc7758d714b

  2. На этом этапе вы можете следовать инструкциям примера Galileo, чтобы собрать cpprest120d_2_2.dll и скопировать его в Galileo. Обязательно установите параметр «Без расширенных инструкций».

  3. Создайте новый проект для примера, как указано, но не используйте NuGet для установки cpprestsdk. Это установит версию 2.3. Вместо этого вы хотите включить версию 2.2, которую вы создали ранее...

  4. Добавьте проект casablanca120.vcxproj из папки Git в свое решение.

  5. В своем примере проекта добавьте ссылку на проект DLL Casablanca: Свойства проекта -> Общие свойства -> Ссылки

  6. Добавьте папку заголовка Casablanca 2.2 в пример проекта: Свойства проекта -> Свойства конфигурации -> C/C++ -> Общие. Установите в поле «Дополнительные каталоги включения» значение your-casablanca-folder\Release\include.

Вот и все — строим и запускаем.

person Dan Watts    schedule 11.12.2014

Ошибка точки входа не найдена означает, что существует зависимая dll, в которой отсутствует какой-либо метод. Чтобы включить дополнительные диагностические данные, вы можете изменить раздел реестра GlobalFlag=2 в разделе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager. В моем случае отсутствуют следующие методы UnregisterClassW. Этот метод определен в файле User32.dll, и если вы сравните файл User32.dll на своей рабочей станции Windows с файлом в Galileo, вы увидите, что эти файлы довольно сильно различаются.

Вы можете узнать в моем блоге, как я исправил/обошёл проблему http://kardum.net/iot/intel-galileo-windows-application-azure-storage/

person Ivan Kardum    schedule 14.01.2015