Microsoft 文档描述了 GetVersion() 函数,该函数允许您获取当前操作系统的版本。但是,在 8.1 及更高版本中,该函数被声明为“已弃用”,因为 返回不正确的结果,因此建议使用 IsWindowsXXXOrGreater() 类型的“版本辅助函数”。但是这些函数根本不会取代 GetVersion(),因为 不允许你找出“颠覆”、构建等特征,而只返回“是/否”。所以他们不适合(或者我不明白)。
此外,我还找到了两个解决该问题的方法:调用 RtlGetVersion() - 内核模式下 GetVersion() 的类似物,或者将清单连接到项目。尽管进行了长时间的搜索,但我没有实现其中任何一个。网络上有很多关于这些主题的讨论,但没有一个讨论得如此完整,以至于我个人很清楚。我希望在这里他们会给我一个至少其中一种方式的例子。
PS关于连接manifest:具体描述一下我没看懂的。
清单文件应该有什么扩展名?.xml?。显现?.exe.manifest?
您需要将清单作为独立资源连接到项目还是连接到具有资源的特定文件?
文档中标题为“语法”的块是什么以及在何处以及如何包含其内容?
这是使用 RtlGetVersion() 的变体:
您也可以从 WMI 获取此信息,但这是一种更耗时且更费代码的方法。