我想让我的应用程序的代码针对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没有定义。
答案 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做了这个。