RegQueryValueEx REG_SZ

哪种数据types应该从Registery中获取数据的variables?

HKEY hKey; HKEY hKey2; DWORD dwMHz = MAX_PATH; string pName; long lError = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0", 0, KEY_READ, &hKey); long lError2 = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0", 0, KEY_READ, &hKey2); // Working RegQueryValueEx(hKey, "~MHz", NULL, NULL, (LPBYTE) &dwMHz, &BufSize); //Not working <-- THIS --> RegQueryValueEx(hKey2, "ProcessorNameInfo", NULL, NULL, (LPBYTE) &pName, &BufSize2); cout << " Processor frequency: " << dwMHz / 1024 << " GHz" << endl; cout << " Processor Name: " << pName << endl; RegCloseKey(hKey); RegCloseKey(hKey2); 

当我尝试打印“pName”时,我什么也没得到。

Solutions Collecting From Web of "RegQueryValueEx REG_SZ"

a您想要将这些数据读入TCHAR类型的数组中,这取决于您的应用程序的构建方式(UNICODE / MBCS)将被正确键入为charwchar_t

当使用这个API读取REG_SZ字符串时,你需要确定2件事情。

1)你的输出缓冲区需要有空间用于任何尾随NULL结束符2)成功时,你的输出缓冲区可能不是NULL NULL TERMINATED。

最后一点很重要 – 如果字符串没有用NULL终止符存储,那么你的输出缓冲区也不会。 您需要注意并正确处理,以免在应用程序中出现安全漏洞。