我正在创建一个 NPAPI dll 文件,我需要从注册表中获取一些信息,但是当我使用 RegQueryValueEx 时,我得到了一些奇怪的字符。
例如,我的电脑型号是“N310”,但我得到的是“Nfb1fb1”或“N$(”。
我很确定这是一个字符集问题,但我是 C++ 新手,需要一些帮助。
我正在使用 Visual Studio 2010,我的项目正在使用 UNICODE 字符集。
这是我的代码:
char lszValue[255];
std::string cadena;
HKEY hKey;
LONG returnStatus;
DWORD dwType=REG_SZ;
DWORD dwSize=255;
returnStatus = RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"HARDWARE\\DESCRIPTION\\System\\BIOS", NULL, KEY_READ, &hKey);
if (returnStatus == ERROR_SUCCESS) {
returnStatus = RegQueryValueEx(hKey, L"SystemProductName", NULL, &dwType,(LPBYTE)&lszValue, &dwSize);
lszValue[dwSize] = 0;
cadena.assign(lszValue, dwSize);
return cadena;
}
非常感谢,感谢您的提前。