HKEY hKey;
char keyData[256] = { 0 };
DWORD keysize = sizeof(keyData);
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"Software\\hrz", 0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS)
{
if (RegQueryValueEx(hKey, L"Key", NULL, NULL, (LPBYTE)keyData, &keysize) == ERROR_SUCCESS)
{
cout << keyData;
}
}
RegCloseKey(hKey);
为什么只有第一个字节应该写入keyData?我知道wchar_t应该不是char类型,但是LPBYTE是指向一个字节的指针,而char只是一个字节。而wchar_t是2个字节,但是它与 wchar_t 一起使用,但与 char 没有...
正如我所知道的,有 2 个版本
RegOpenKeyEx:RegOpenKeyExA并且RegOpenKeyExW根据项目设置进行选择。我使用 UNICODE 的项目设置并使用类型的缓冲区char,其中写入的不是 1 个字节,而是每个 2 个(wchar_t 类型) .