【问题标题】:What are the differences between Win32 and ARM target platform when developing for WP8?为WP8开发时,Win32和ARM目标平台有什么区别?
【发布时间】:2013-07-04 08:34:48
【问题描述】:

我知道,对于一个WP8项目,我们必须在部署到模拟器时以Win32为目标,在部署到真机时以ARM为目标。

查看VC++ Directories,我们可以看到每个目标平台都有不同的路径。例如Library Directories

Win32

$(WP80ToolSetPath)lib
$(WindowsSDK_LibraryPath_x86)

ARM

$(WP80ToolSetPath)lib\arm
$(WindowsSDK_LibraryPath_ARM)

部署到真实设备非常棒,但并不是每个人都有机会使用真实设备。那么选择目标平台(Win32 vs ARM)会影响支持的 API 吗? (尤其是在 Windows Phone 运行时组件中)

它们之间有什么区别吗?

【问题讨论】:

    标签: winapi windows-phone-8 arm target-platform difference


    【解决方案1】:

    实际上,您通常可以认为 ARM 和 Win32 的 API 相同。 IE。代码应该在设备和模拟器上编译、链接和运行相同的代码。

    这两种 API 的主要区别在于 x86 是模拟器,ARM 是设备,它们各自具有细微的不同特性。然而,在考虑 .NET API(比如网络)时,这并没有什么不同。

    (当然有不同的路径 - 这些是本地二进制库,因此一个目录包含 x86 库,另一个包含 ARM 库。库的文件将具有相同的名称,因此将它们放在其他目录中是一个明显的解决方案)

    【讨论】:

    • 较低级别的 API(在 WP 运行时组件中)呢?有什么区别吗?
    • WP 运行时组件就是我所说的(例如,它们不像 C 运行时或 Win32 那样低级)。
    【解决方案2】:

    当您的项目有一些原生依赖项(如 SQLite)时,通常会为您的项目使用不同的目标平台。在这种情况下,您不能再使用Any CPU 目标,并且需要为模拟器(x86 目标)和设备(ARM 目标)提供不同的构建。 API 或其他方面没有任何差异。

    【讨论】:

    • 本机代码(SQLite 就是这样)总是被编译为某些特定的处理器架构,如 x86、x86_64 或 ARM。从这个意义上说,不确定您所说的“使用任何 CPU 架构”是什么意思...
    猜你喜欢
    • 1970-01-01
    • 2016-04-17
    • 2013-03-09
    • 2011-05-04
    • 2021-03-16
    • 2015-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多