如何在C++/C中检测操作系统是否为Windows?
如何在C++/C中检测操作系统是否为Windows?
#ifdef _WIN32
cout << "This is Windows." << endl;
#endif
只要定义了预处理器宏,这将允许您仅为Windows定义块。
这是编译时的事情,而不是运行时的事情。
getenv()
函数:#include <cstdlib>
getenv("windir");
NULL
,那么它就不是Windows系统。%windir%
应该只在Windows系统上定义。当然,这是一种简单而粗暴的方法。
http://www.cplusplus.com/reference/clibrary/cstdlib/getenv/
如果是运行时,您可能指的是在非Windows操作系统上运行Wine。如果不是这样,那就根本不可能。Windows二进制文件无法在其他操作系统中运行(除非它们有Wine)。
如果是编译时,可能是重复问题:是否有任何宏来确定我的代码是被编译到Windows中?
(请参考上面接受的答案)