C++ 用C++;可以使Windows 8应用程序不在ARM上运行吗?

C++ 用C++;可以使Windows 8应用程序不在ARM上运行吗?,c++,windows-8,microsoft-metro,C++,Windows 8,Microsoft Metro,在构建Windows8应用程序时,开发人员可以选择HTML/JavaScript、XAML/.Net(C#/VB)和XAML/C++。我想用XAML/C++编写我的应用程序 在前两个选项中构建应用程序几乎可以保证您的应用程序将在Intel和ARM体系结构上执行 但是我听说如果我在C++应用程序中做了某些事情,我会导致应用程序在ARM体系结构上不执行。但我不知道细节 是否有人知道C++ Windows 8应用程序应该避免什么,以便他们可以运行在ARM好吗?这些是架构决定还是仅仅是技术上的差异?我不

在构建Windows8应用程序时,开发人员可以选择HTML/JavaScript、XAML/.Net(C#/VB)和XAML/C++。我想用XAML/C++编写我的应用程序

在前两个选项中构建应用程序几乎可以保证您的应用程序将在Intel和ARM体系结构上执行

<>但是我听说如果我在C++应用程序中做了某些事情,我会导致应用程序在ARM体系结构上不执行。但我不知道细节


是否有人知道C++ Windows 8应用程序应该避免什么,以便他们可以运行在ARM好吗?这些是架构决定还是仅仅是技术上的差异?

我不知道有什么会使您的代码无法在ARM下执行或编译(内联汇编除外)

然而,你可以做一些事情,这会让ARM给出错误的答案

ARM处理器是“弱有序”的。这篇最新的文章为您提供了最基本的信息


但总而言之,ARM处理器可能会对内存访问进行重新排序,如果您不小心,这可能会在多线程应用程序中的x86和ARM体系结构之间产生不同的结果。

ARM仅支持Windows应用商店应用程序

系统要求

支持的体系结构:Windows SDK for Windows 8支持 为以下体系结构构建应用程序:x86 x64 ARM (Windows应用商店应用程序)注意:无法安装Windows 8的Windows SDK 直接安装在ARM架构上。您可以安装 在x86或x64平台上安装Windows SDK,以便构建应用程序 目标是ARM架构


为了在每个体系结构上运行,您首先需要为每个体系结构编译。如果编写标准C++(如果不依赖于未定义的行为和/或平台特定的行为),那么在架构之间移植时通常会引起麻烦的事情是:

(此列表是一个示例)

  • int、long、long-long(以及其他)的大小在不同平台之间可能有所不同
  • 字符的符号性
  • 如何填充结构
  • 浮点数的二进制布局
  • 持久性
  • 等等

如果你不使用疯狂的指针运算和强制转换,通常你是安全的。

MFC应用程序不会在基于ARM的Windows 8系统上运行

<>你可以用C++来构建地铁风格的应用程序,你只需要遵循地铁“风格”的指导原则。
如果希望所有程序都支持基于ARM的Windows 8系统以及基于x86的系统,请将程序更改为使用HTML/CSS或XAML和WinRT API,而不是MFC和Win32 API。

cpp
是一个文件扩展名,您可能是指C++。AFAIK——任何使用Metro编写的应用程序都应该在Windows 8平台上工作。如果您只使用现代UI配置文件,您应该是可以的。你需要宽宏大量,我们才能真正帮助你。你的问题不清楚,问某个东西是否是“FUD”,这是一个讨论话题,有点适合Stackoverflow。看看如果你不为ARM编译,它就不能在ARM上运行。JS和.Net不直接编译为机器代码,因此这些语言的应用程序可以在任何体系结构上运行。