C++ 设置无效值时注册表项将采用默认值吗

C++ 设置无效值时注册表项将采用默认值吗,c++,winapi,C++,Winapi,我正在使用无效值设置注册表项(使用REG_SZ设置REG_DWORD项值)。注册表将保留它之前拥有的值,还是将其重置为默认值 比如说。我已设置注册表项并将其设置为值“4”。此键的默认值为“2”。现在,当我尝试使用api“RegSetValueEx(…)”和无效的REG_SZ值设置此键时。这就是成功。现在如果我得到这个键值,它是默认值“2”还是之前的设置值“4” RegSetValueEx设置注册表项下指定值的数据和类型 它只会将存储值的类型更改为REG_SZ,并设置您指定的值,而不会检查以前有什

我正在使用无效值设置注册表项(使用REG_SZ设置REG_DWORD项值)。注册表将保留它之前拥有的值,还是将其重置为默认值

比如说。我已设置注册表项并将其设置为值“4”。此键的默认值为“2”。现在,当我尝试使用api“RegSetValueEx(…)”和无效的REG_SZ值设置此键时。这就是成功。现在如果我得到这个键值,它是默认值“2”还是之前的设置值“4”

RegSetValueEx设置注册表项下指定值的数据和类型

它只会将存储值的类型更改为REG_SZ,并设置您指定的值,而不会检查以前有什么值或类型。因此,当您读取该值时,您将得到在此处设置的最后一个值。没有“无效”的REG_SZ


另外,请忘记“键的默认值”。不是你想的那样。这不是API在出现故障时将返回的值,它只是匿名值的一个花哨名称。

ok。非常有用的评论,使我所写的一切都毫无意义。我会花一些时间来研究你洞察的代码,看看我是否能更好地理解它。@HokageSama:你不认为你应该给他答案吗?是的,Carey。出于同样的原因,我没有在浏览器选项卡中关闭此页。@ybungalobill:我还有一个关于注册表的问题。也来看看吧。