C ++ получить ключ реестра возвращает только один символ - PullRequest
3 голосов
/ 19 декабря 2010

Я пытаюсь получить значение ключа, но я получаю только первый символ значения .. Кто-нибудь может помочь?

мой код:

void dealWithRegistry()
{
    HKEY regkey1;
    char data[100];
    DWORD datasize = sizeof (data) / sizeof (char);
    LONG rc = RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_READ, &regkey1);
    if (rc != ERROR_SUCCESS)
    {
        cout << "there was a problem openning" << endl;
    }
    else
    {
        rc = RegGetValue (regkey1, NULL, L"AppData", RRF_RT_REG_SZ, NULL, (void*) data, &datasize);
        if (rc != ERROR_SUCCESS)
        {
            cout << data << endl;
            cout << "there was a problem getting the value" << endl;
        }
    }
    cout << data << endl;

}

1 Ответ

6 голосов
/ 19 декабря 2010

Вероятно, он возвращает данные Unicode, и вы печатаете только первый символ. Быстрая проверка этого состояла бы в том, чтобы изменить вызов на RegGetValueA.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...