Question

I know that for a WP8 project, we must target Win32 when deploying to the emulator, and target ARM when deploying to the real device.

Looking into VC++ Directories, we can see that there are different paths for each target platform. For example Library Directories

Win32

$(WP80ToolSetPath)lib
$(WindowsSDK_LibraryPath_x86)

ARM

$(WP80ToolSetPath)lib\arm
$(WindowsSDK_LibraryPath_ARM)

Deploying to a real device is great, but not everyone has chance to work with real device. So does selecting target platform (Win32 vs ARM) affect the APIs supported? (especially in the Windows Phone Runtime Component)

Are there any differences between them ?

Was it helpful?

Solution

In practice you can usually consider the APIs to be the same for both ARM and Win32. I.e. the code should compile, link and run the same on both device and emulator.

The main difference between the two APIs are dictated by the fact that x86 is the emulator, and ARM is the device, each of which have subtly different characteristics. However that's no different when considering the .NET APIs, say for networking.

(Naturally there are different paths - these are native binary libraries, so one directory contains the x86 libraries, the other the ARM ones. The library's files will have identical names, so putting them in other directories is an obvious solution)

OTHER TIPS

Different target platforms for your project are usually used when your project has some native dependencies, like SQLite. In that case, you cannot use Any CPU target anymore, and need to have different builds for Emulator (x86 target) and device (ARM target). There are no any differences in APIs or anything else.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top