我需要使用 C++ 检查注册表中是否未设置(默认)值。每当未设置该值并且我尝试访问该值时,程序就会崩溃,而且我不知道如何检查该值是否已设置。这是代码:
DWORD valueLength = 256;
char* value = new char[valueLength];
auto queryValueErrorCode = RegQueryValueEx(key, NULL, NULL, NULL, (LPBYTE) value,
&valueLength);
while(queryValueErrorCode == ERROR_MORE_DATA) {
valueLength += 256;
char* newValue = new char[valueLength];
delete[] value;
value = newValue;
queryValueErrorCode = RegQueryValueEx(key, NULL, NULL, NULL, (LPBYTE) newValue,
&valueLength);
}
此代码不会自行崩溃 - 当我尝试访问该值时它会崩溃,因此我必须检查该值是否已设置。
最佳答案
(默认)值在设置之前不存在,因此检查错误代码
ERROR_FILE_NOT_FOUND
在尝试访问该值之前。
关于c++ - 如何检查注册表中是否未设置(默认)值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31287592/