【问题标题】:Getting OSName as a string C++ [duplicate]将 OSName 作为字符串 C++ [重复]
【发布时间】:2013-03-11 19:34:00
【问题描述】:

我是 C++ 的超级新手,我正在尝试弄清楚如何将 OSName(win 7、8、vista、xp 等)作为字符串返回。我尝试搜索,MSDN 没有帮助,只会让我更加困惑。

感谢所有帮助。

【问题讨论】:

  • 我猜它似乎已经完成了,但不是你想要的方式:msdn.microsoft.com/en-ca/library/windows/desktop/…
  • 仅限 Windows 还是您也想要其他操作系统? (OSX 版、GNU/Linux 发行版……)
  • 只有Windows,不需要其他的
  • @Mike D 我检查了那个问题,MSDN 链接是我检查的,但我根本不明白如何使用它。
  • @jorisbolsens 够公平的。您可能想更新您的问题以显示您不理解的部分。

标签: c++ windows string operating-system


【解决方案1】:

是什么让您认为 MSDN 会给您答案? Microsoft 在 MSDN 上的实现不是标准的 C++,因此您应该寻找可移植的解决方案。

【讨论】:

  • -1: Microsoft's implementation on MSDN is not standard C++....
  • @JesseGood 很明显,SevenBits 意味着 Windows API 不是 C++ 标准的一部分……
  • 没错。你问是否有办法在 C++ 中做到这一点,而不是在 Win32 中是否可以做到。在普通的旧 C++ 中,如果没有预处理器的帮助,答案是否定的。
  • @kay:MSDN 网站包含很多信息(包括有关标准 C++ 库的实现信息),而不仅仅是 winapi。 Microsoft's implementation on MSDN 没有任何意义,MSDN 是一个网站。
  • 显然,作为 C++ 标准的一部分,不会提供任何机制来确定 Windows 的版本。 C++ 语言可以在 Windows 以外的许多平台上运行。这似乎是一个完全荒谬的论点。您必须调用其中一个 Windows API 函数,它们记录在 MSDN 上。它们在标准 C++ 中运行良好。
【解决方案2】:

似乎使用预定义的标题是最简单的方法

http://sourceforge.net/p/predef/wiki/OperatingSystems/

【讨论】:

  • 我没有看到任何可能区分 Windows 7 和 XP 的地方。尤其是因为这必须在运行时确定。
  • @BenjaminLindley joris bolsens 最初并没有说他想知道 Windows 版本……这个问题读起来就像他想区分不同的操作系统系列。在 thkang 回答之后,cmets 来了。
  • @Kay:他做了忍者编辑吗?因为问题是 "OSName (win 7, 8, vista, xp, etc)" - 在此之前没有明显的编辑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-13
  • 2015-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多