用C++检测Windows操作系统

Dan*_*iel 2 c++ windows

如何在C++/C中检测操作系统是否为Windows?

谢谢

Pau*_*aul 24

#ifdef _WIN32
cout << "This is Windows." << endl;
#endif
Run Code Online (Sandbox Code Playgroud)

这将允许您仅为Windows定义块.只要定义了预处理器宏.

这是编译时的事情,而不是运行时的事情.

  • 这适用于 Windows 64 位吗?我当然可以测试,但也许值得为未来的读者编辑答案。 (2认同)

Jer*_*rds 2

getenv()您可以像这样从cstdlib中使用:

#include <cstdlib>

getenv("windir");
Run Code Online (Sandbox Code Playgroud)

如果你明白了NULL那就不是窗户了。

这是有效的,因为%windir%只能在 Windows 系统上定义。当然,这是一种廉价且肮脏的黑客行为。

http://www.cplusplus.com/reference/clibrary/cstdlib/getenv/

  • -1:我可以在linux上定义windir... (16认同)
  • 我相当肯定这样做是不好的。 (6认同)