Конвертировать void * представление меча в wstring - PullRequest
1 голос
/ 14 июня 2010

У меня тупой понедельник, поэтому я извиняюсь за публикацию такого вопроса, похожего на новичка.

Я использую CRegKey.QueryValue , чтобы вернуть значение dword из реестра. QueryValue записывает значение в void* pData, а длину в ULONG* pnBytes.

Теперь есть способ получить его из pData в wstring, вероятно, через stringstream. Самым близким, что я получил, было получение результата в виде шестнадцатеричной строки. Я собирался поработать над преобразованием шестнадцатеричного представления в меч, а затем оттуда в цепочку, когда я решил, что это просто глупо, и спрашиваю здесь, вместо того, чтобы тратить еще час моей жизни на проблему.

Ответы [ 2 ]

2 голосов
/ 14 июня 2010

Почему бы вместо этого не использовать CRegKey :: QueryDWORDValue?Тогда вы можете просто распечатать его в виде строки (если хотите).

1 голос
/ 14 июня 2010

Я не проверял, но должно быть в порядке:

/* To test if the value is REG_DWORD and get it */
DWORD dwValue;
switch (key->QueryDWORDValue(lpName, &dwValue)) {
    case ERROR_SUCCESS:
        cout << "All ok, value: " << dwValue;
        break;

    case ERROR_INVALID_DATA:
        cout << "Error, not DWORD value";
        break;

    default:
        cout << "Some other error";
        break;
}

/* to obtain the type */
DWORD dwType;
if (key->QueryValue(lpName, &dwType, NULL, NULL) == ERROR_SUCCESS)) /* use 'dwType' here... */
...