有条件地包括Windows Mobile的代码

时间:2012-10-17 09:48:45

标签: c visual-studio-2008 windows-mobile

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

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

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

我应该使用的宏是什么?

Target plarform是Windows Mobile 6专业版。

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

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

如果您的目的是为Win32(桌面)和WCE提供相同的代码文件,那么您将遇到Visual Studio IDE的问题,因为它本身不支持make / cmake和makefile这样做。必须有不同的编译器才能启动等。

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

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