C++ C++;RegGetValue函数未返回正确的Windows操作系统版本

C++ C++;RegGetValue函数未返回正确的Windows操作系统版本,c++,windows,C++,Windows,我正在控制台应用程序中使用以下代码获取我的Windows OS版本: #include <string> #include <iostream> #include <Windows.h> int main() { DWORD dataSize = 0; char buffer[256]; dataSize = sizeof(buffer); RegGetValueA(HKEY_LOCAL_MACHINE, "SOFTWARE\\M

我正在控制台应用程序中使用以下代码获取我的Windows OS版本:

#include <string>
#include <iostream>
#include <Windows.h>

int main()
{
  DWORD dataSize = 0;
  char buffer[256];
  dataSize = sizeof(buffer);

  RegGetValueA(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", 
   "ProductName", RRF_RT_REG_SZ, 0, &buffer, &dataSize);

  cout << buffer << endl;
  return 0;
}
#包括
#包括
#包括
int main()
{
DWORD数据大小=0;
字符缓冲区[256];
dataSize=sizeof(缓冲区);
RegGetValueA(HKEY_LOCAL_机器,“软件\\Microsoft\\Windows NT\\CurrentVersion”,
“产品名称”、RRF\u RT\u REG\u SZ、0、缓冲区和数据大小);

这是否可能是64位Windows上的32位应用程序的副本?您正在查看错误的注册表项,请导航到HKLM/Software/Wow6432Node/等。为什么要使用注册表?有几个Win32 API函数可以直接返回操作系统版本号。
GetVersionEx()
(需要在Windows 8.1+、或
RtlGetVersion()
NetServerGetInfo()
netkstagetinfo()
上显示)(所有这些都不需要任何显示)@HansPassant当我导航到你在Regedit中指示我的位置时,我看到它显示的是Windows 10 Enterprise,所以这确实是它的来源。至于为什么会出现这种情况,我也不知道。我一定是在安装时以某种方式完成的,因为我检查了另一台Windows Pro PC,并且在两个注册表位置都报告了正确的版本n、 谢谢大家!