RegDeleteTree не объявлено // Ошибка компиляции

0

Я пытаюсь удалить ключ реестра 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. Что мне не хватает?

Теги:
registry

1 ответ

2
Лучший ответ

Вам нужен SDK для Vista или более поздней версии, и вам нужно установить _WIN32_WINNT:

#define  _WIN32_WINNT  0x0600
#include <Windows.h>

На странице MSDN для RegDeleteTree:

Чтобы скомпилировать приложение, использующее эту функцию, определите _WIN32_WINNT как 0x0600 или новее. Дополнительные сведения см. В разделе Использование заголовков Windows.

  • 0
    Спасибо, что решил проблему.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню