Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 有条件地包含windows mobile的代码_C_Visual Studio 2008_Windows Mobile - Fatal编程技术网

C 有条件地包含windows mobile的代码

C 有条件地包含windows mobile的代码,c,visual-studio-2008,windows-mobile,C,Visual Studio 2008,Windows Mobile,我想让我的应用程序的代码针对windows mobile进行不同的编译,因为它的功能较少 为此,我想编写如下代码: #ifndef (_windows_mobile_) //define avaiabilty of features thatare not supported in windows mobile #endif 我应该使用什么宏 目标平台是Windows Mobile 6 professional 我去了,但宏宏WIN32的WCE没有定义。 < P>您应该正确定义项目和构建目标,

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

为此,我想编写如下代码:

#ifndef (_windows_mobile_)
//define avaiabilty of features thatare not supported in windows mobile
#endif
我应该使用什么宏

目标平台是Windows Mobile 6 professional


我去了,但宏宏WIN32的WCE没有定义。

< P>您应该正确定义项目和构建目标,以便从Windows CE平台SDK中提取需要的宏和头,否则如果用一个裸x86桌面构建目标,它将不能工作。

< P>这是一个StaskEngultC++还是C项目? _WIN32_WCE不是一个宏,而是一个定义,您可以在C/C++编译器选项(如/D_WIN32_WCE)中看到

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

如果您打算为Win32 desktop和WCE提供相同的代码文件,则Visual Studio IDE将出现问题,因为它不支持make/cmake和makefiles这样的本机代码文件。必须有不同的编译器才能启动等

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


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

您使用的是哪种开发IDE?您可以将该宏添加到windows mobile的生成目标中。Visual Studio 2008。我假设SDK中一定有为我的平台定义的宏,我就是找不到。Windows CE platform SDK设置正确吗?因为宏来自它的头。也许您只是作为桌面目标进行编译?我通过configuration manager更改了目标平台。您可以在Windows CE platform SDK文件夹中查找宏吗?只需在文件中搜索_WIN32_WCE,并查看是否在任何地方使用了该包含文件?在我检查后,我会找出类似于_CE和其他更具体的宏,来自为windows mobile开发正确配置的项目中编译器的命令行。