在C++中可以使Windows 8应用程序无法在ARM上运行?

Jer*_*xon 17 c++ microsoft-metro windows-8

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

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

但我听说如果我在C++应用程序中执行某些操作,我可能会导致应用程序无法在ARM体系结构上执行.但我不知道细节.

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

mau*_*uve 3

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

(此列表为示例)

  • int、long、long long(和其他)的大小在不同平台上可能不同
  • char 的符号
  • 如何填充结构
  • 浮动的二进制布局
  • 字节顺序
  • 等等。

通常,如果您避免进行疯狂的指针算术和转换,那么您是安全的。