2010-01-31 76 views
3

喜欢的东西:如何判断您是否在Windows上编译?

#ifdef WINDOWS 
// do stuff 
#endif 
+0

你使用什么编译器?答案可能取决于编译器。 – SoapBox 2010-01-31 22:44:03

+1

Windows上的Visual Studio,Linux上的GCC – y2k 2010-01-31 22:44:36

+0

在* Windows上编译*,或在* Windows上编译* – 2010-01-31 22:46:16

回答

11

_WIN32总是在Windows平台上定义,检出predefined macros

+0

只有在您的项目中包含某个文件或使用Visual Studio时才定义它。 – Amirshk 2010-01-31 22:46:31

+0

虽然我似乎记得有一点惊喜,一旦Symbian模拟器的编译器定义了_WIN32或类似的东西。有意义的是,模拟器确实在Windows上运行,但我们实际上并不希望我们的Win32特定的子句适用于... – 2010-01-31 22:48:21

+4

_WIN32宏由Microsoft C编译器(cl.exe)定义,它要求没有额外的#包含。 – 2010-01-31 22:51:35

0

这取决于你使用的是什么文件上。

编译器本身没有这样的标志,但在操作系统的SDK中有这样的定义是很常见的。

例如,CRT有一个Win32定义,它会影响它的编译方式。

0

我不完全确定我理解这个问题,但是,您可以这样做。很明显,你需要告诉编译器你在编译时在Windows(或者操作系统x)上编译。我已经看到类似的方法用于像整数这样的事情的位大小。

相关问题