Winapi RegDeleteKeyValue和RegDeleteValue之间的区别是什么?

Winapi RegDeleteKeyValue和RegDeleteValue之间的区别是什么?,winapi,Winapi,我想知道在Win32API中RegDeleteKeyValue和RegDeleteValue之间有什么不同。两者都有,并从中删除一个值。不同之处在于方便:应用程序和系统组件通常以子键组的形式构造注册表数据,每个子键包含一个值列表RegDeleteKeyValue允许在从多个子键删除值时重用父键句柄。使用RegDeleteValue时,必须分别打开每个子键的句柄 补充阅读: RegDeleteValue()是一个遗留函数,已经存在了22年。RegDeleteKeyValue()是一个新增项,

我想知道在Win32API中RegDeleteKeyValue和RegDeleteValue之间有什么不同。

两者都有,并从中删除一个值。不同之处在于方便:应用程序和系统组件通常以子键组的形式构造注册表数据,每个子键包含一个值列表
RegDeleteKeyValue
允许在从多个子键删除值时重用父键句柄。使用
RegDeleteValue
时,必须分别打开每个子键的句柄

补充阅读:

RegDeleteValue()是一个遗留函数,已经存在了22年。RegDeleteKeyValue()是一个新增项,首先在Vista上可用。主版本6,必须将_WIN32_WINNT宏设置为0x600或更高版本才能使用它。无法在Windows XP、Server 2003或更早版本上运行

版本6改变了几个与注册表相关的函数的行为,否则就没有我所见过的一个奇妙的文档化的基本原理。然而,这些变化看起来像是微软试图让它们不那么容易被恶意软件利用。RegDeleteValue()适合,它是一个相当危险的函数。使用缓冲区溢出重击
hKey
参数,给它一个预定义值,如hKey_CURRENT_USER和受攻击的程序,可以立即摧毁用户的机器。我想,从来没有试过:)

<>所以你一定要考虑ReGeleTeKialValuy().<