C++ 从注册表HKEY_LOCAL_计算机删除注册表项

C++ 从注册表HKEY_LOCAL_计算机删除注册表项,c++,visual-studio,registry,windows-7-x64,C++,Visual Studio,Registry,Windows 7 X64,我想制作一个卸载程序,它应该从HKEY\U LOCAL\U机器中删除注册表项。问题是,每次我尝试删除位置时,都会得到LASTERROR 2,这通常是错误的名称 HKEY hKey = HKEY_LOCAL_MACHINE; LSTATUS deletes = SHDeleteKey(hKey, L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\NameOfApp\\"); if (deletes == ERROR_SUCCESS

我想制作一个卸载程序,它应该从
HKEY\U LOCAL\U机器
中删除注册表项。问题是,每次我尝试删除位置时,都会得到
LASTERROR 2
,这通常是错误的名称

HKEY hKey = HKEY_LOCAL_MACHINE;
LSTATUS deletes = SHDeleteKey(hKey, L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\NameOfApp\\");
if (deletes == ERROR_SUCCESS)
{
    return true;
}
<>我在C中有相同的代码,但是C++没有。也可以尝试作为管理员,但仍然没有什么(使用C#没有任何特权和工作)

操作系统:Windows7,64位


你知道发生了什么吗?

在64位Windows上,有两个独立的注册表树。一个用于32位应用程序,另一个用于64位应用程序。这取决于您的应用程序(32位对64位)在调用
SHDeleteKey
时使用的树,这可能是它使用
c#
而不是
c++
的原因


您可以使用显式定义要访问的树。

您正在使用的操作系统以及如何编译
c++
程序?@user0815 windows 7 64Thxn man:)您节省了我的时间!!!!(long laster=RegDeleteKeyEx(hKey,L“软件\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\NameOfApp\\”,键为0)