1

我想让我的应用程序代码针对 windows mobile 进行不同的编译,因为它的功能较少。

为此,我想编写这样的代码:

#ifndef (_windows_mobile_)
//define avaiabilty of features thatare not supported in windows mobile
#endif

我应该使用什么宏?

目标平台是 Windows Mobile 6 专业版。

我去了http://sourceforge.net/p/predef/wiki/OperatingSystems/,但没有定义列出的宏 _WIN32_WCE。

4

2 回答 2

0

您应该正确定义项目和构建目标,以便从 Windows CE 平台 SDK 中提取所需的宏和标头,否则如果使用裸 x86 桌面构建目标进行构建,它将无法工作。

于 2012-10-17T11:41:57.877 回答
0

这是 SmartDevice C++ 还是 C# 项目?

_WIN32_WCE 不是宏,而是您可以在 /D _WIN32_WCE 等 C/C++ 编译器选项中看到的定义。

您也可以使用自己的#defines。例如在 C# 代码的顶部,然后在代码文件中使用 #ifdef/#else/'endif。但是使用编译选项将使定义对所有代码文件可见。

如果您的意图是为 Win32(桌面)和 WCE 提供相同的代码文件,那么您会遇到 Visual Studio IDE 的问题,因为它不支持此功能,就像 make/cmake 和 makefiles 那样。必须有不同的编译器才能启动等。

对于 C# 项目,没有不同的编译器,但要引用不同的程序集等。可能您应该寻找使用交叉编译器的另一种方法。

您可以在 C# 中使用 #ifdef 共享一些相同的代码文件,我已经为 iTextSharpCF 做过。

于 2012-10-18T07:03:39.483 回答