Intel Galileo and C++ REST SDK

480 views Asked by At

I've successfully setup my Intel Galileo board (Gen 2) with the latest Windows IoT image (2/12/2014). I can boot the image without any issues, telnet into it and run a 'blink' application fine.

I've tried to run the 'Casablanca' sample and followed the instructions from http://ms-iot.github.io/content/Casablanca.htm. When I telnet into the Galileo board and try to run the console application I'm getting no output at all. When trying to debug from Visual Studio I can see the following output:

First-chance exception at 0x77CC342A (ntdll.dll) in WindowsIoTDemo.exe: 0xC0000139: Entry Point Not Found. The program '[2016] WindowsIoTDemo.exe' has exited with code -1073741511 (0xc0000139) 'Entry Point Not Found'.

Has anyone been able to run the Casablanca sample application, or use the C++ REST SDK in a 'Windows for IoT' project at all?

2

There are 2 answers

0
Dan Watts On

I had the same problem when using the latest release of Casablanca, 2.3. In order to run the sample, I used Casablanca 2.2:

  1. Since there doesn't appear to be a way to download the 2.3 source code from Codeplex, the only way I could see was to use Git:

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

    git checkout 9cc7758d714b

  2. At this point, you can follow the instructions in the Galileo sample to build cpprest120d_2_2.dll and copy it to the Galileo. Be sure to set the "No Enhanced Instructions" option.

  3. Create a new project for the sample as directed, but don't use NuGet to install cpprestsdk. This will install the 2.3 version. Instead, you want to include the 2.2 version you built earlier...

  4. Add the casablanca120.vcxproj project from your Git folder to your solution

  5. In your sample project, add a Reference to the Casablanca DLL project: Project properties -> Common Properties -> References

  6. Add the Casablanca 2.2 header folder to your sample project: Project properties -> Configuration Properties -> C/C++ -> General. Set the "Additional Include Directories" field to your-casablanca-folder\Release\include.

That's it - build and run.

0
Ivan Kardum On

Entry point not found error means there is a depending dll, in which some method is missing. To enable more diagnostic output, you can change registry key GlobalFlag=2 under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager. In my case the following methods is missing UnregisterClassW. This method is defined in User32.dll and if you compare User32.dll in you workstation Windows with the one in Galileo, you’ll see that these files are pretty much different.

You can find out on my blog how I fixed/workarounded the problem http://kardum.net/iot/intel-galileo-windows-application-azure-storage/