怎么了?当我想获取 AUVersion 的值时它崩溃了。此 key 存在于注册表中,但我无法获取它。
int main(int argc, char *argv[])
{
HKEY key;
if (RegOpenKey(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\JavaSoft\\Auto Update\\"), &key) != ERROR_SUCCESS)
{
cout << "Unable to open registry key\n\n";
}
char path[1024];
DWORD value_length = 1024;
//here is the crash
RegQueryValueEx(key, "AUVersion", NULL, (LPDWORD)REG_SZ, (LPBYTE)&path, &value_length);
cout << "the value read from the registry is: " << path << endl;
system("pause");
return 0;
}
最佳答案
第四个参数是一个 LPDWORD
-- 一个指向 DWORD 的指针。您采用了一个常规整数并将其转换为一个指针,该指针(在取消引用时)会崩溃。
该参数接收 注册表值的类型。如果您不想知道类型,请将其设置为 NULL。
关于c++ - 从注册表 C++ 崩溃中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15621981/