Я пытаюсь удалить ключ реестра Windows и все его подразделы, в частности, ключ "Открыть с помощью SHCP" (который я создал) и все его подразделы и значения. У меня есть код, но он бросает мне эту ошибку:
'RegDeleteTree' was not declared in this scope
Код:
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
HKEY hKey;
cout << "Deleting Tree:\n\n";
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Classes\\*\\shell", 0, KEY_ALL_ACCESS, &hKey)== ERROR_SUCCESS)
{
cout << "Successfully opened key\n";
if(RegDeleteTree(hKey,"Open with SHCP") == ERROR_SUCCESS)
{
cout << "Successfully deleted the key\n";
}
else
{
cout << "Failed to delete the tree\n";
}
RegCloseKey(hKey);
}
else
{
cout << "Error, no tree available\n";
}
cin.get();
return 0;
}
Я использую Windows 7 и Dev-С++ 5.6.3. Кроме того, я могу использовать другие функции, такие как RegOpenKeyEx
и RegCreateKeyEx
. Что мне не хватает?
Вам нужен SDK для Vista или более поздней версии, и вам нужно установить _WIN32_WINNT
:
#define _WIN32_WINNT 0x0600
#include <Windows.h>
На странице MSDN для RegDeleteTree
:
Чтобы скомпилировать приложение, использующее эту функцию, определите _WIN32_WINNT как 0x0600 или новее. Дополнительные сведения см. В разделе Использование заголовков Windows.