在构建Windows 8应用程序时,开发人员可以选择HTML/JavaScript、XAML/.Net (C#/VB)和XAML/C++。我想用XAML/C++编写我的应用程序。
在前两种选择中构建应用程序几乎可以保证您的应用程序将在Intel和ARM架构上执行。
但我听说,如果我在我的C++应用程序中做了某些事情,我可能会导致应用程序在ARM架构上不执行。但我不知道细节。
有谁知道C++ Windows 8应用程序应该避免什么,这样它们就可以在ARM上运行了吗?这些是体系结构的决定还是技术上的差异?
发布于 2012-10-22 19:51:59
为了在每个体系结构上运行,首先需要为每个体系结构进行编译。如果您编写了标准的C++ (如果您不依赖于未定义的行为和/或特定于平台的行为),那么在体系结构之间移植时通常会造成麻烦的事情是:
(这个列表就是一个例子)
通常你是安全的,如果你不疯狂的指针算术和铸造。
发布于 2012-10-22 19:48:33
我不知道有什么会使您的代码在ARM (内联程序集除外)下根本不执行或编译。
然而,有些事情你可以做,这会使手臂给出错误的答案。
ARM处理器是“弱有序的”--这篇最近的文章给出了低层次的信息。
http://preshing.com/20121019/this-is-why-they-call-it-a-weakly-ordered-cpu
但是总括而言,ARM处理器可能会重新排序内存访问,如果您不小心,这可以在多线程应用程序中在x86和ARM体系结构之间给出不同的结果。
发布于 2012-10-22 19:51:44
ARM只支持Windows应用程序。
系统需求 支持体系结构:WindowsSDKforWindows8支持为以下架构构建应用程序: x86 x64 ARM (Windows应用程序)注意:WindowsSDKforWindows8不能直接安装在ARM体系结构上。您可以在x86或x64平台上安装Windows,以便构建针对ARM架构的应用程序。
以下是您可以参考的文章的链接。
https://stackoverflow.com/questions/13016861
复制相似问题