Использование RegQueryValueEx для значения реестра, которое может быть REG_DWORD или REG_SZ. ⇐ C++
-
Гость
Использование RegQueryValueEx для значения реестра, которое может быть REG_DWORD или REG_SZ.
В настоящее время я использую RegQueryValueEx() для получения значения реестра, которое потенциально может быть записано в формате REG_SZ или REG_DWORD.
BYTE byteArray[MAX]; DWORD dataSize = sizeof(byteArray); Тип DWORD = 0; RegQueryValueEx( хКей, дополнительный ключ, нульптр, &тип, reinterpret_cast(&byteArray), &размер данных)); Когда я получаю данные значения REG_SZ (пример: «42314»), я получаю в ответ следующее:
byteArray 0x004fe6a8 «4» беззнаковый символ [100] [0] 52 '4' беззнаковый символ [1] 0 '\0' беззнаковый символ [2] 50 '2' беззнаковый символ [3] 0 '\0' беззнаковый символ [4] 51 '3' беззнаковый символ [5] 0 '\0' беззнаковый символ [6] 49 '1' беззнаковый символ [7] 0 '\0' беззнаковый символ [8] 52 '4' беззнаковый символ [9] 0 '\0' беззнаковый символ [10]0 '\0' беззнаковый символ Можно ли как-нибудь не иметь нулевых байтов после каждого символа? Я думаю, это из-за того, что RegEnumValue() вызывается для каждого символа, но я не уверен.
В настоящее время я использую RegQueryValueEx() для получения значения реестра, которое потенциально может быть записано в формате REG_SZ или REG_DWORD.
BYTE byteArray[MAX]; DWORD dataSize = sizeof(byteArray); Тип DWORD = 0; RegQueryValueEx( хКей, дополнительный ключ, нульптр, &тип, reinterpret_cast(&byteArray), &размер данных)); Когда я получаю данные значения REG_SZ (пример: «42314»), я получаю в ответ следующее:
byteArray 0x004fe6a8 «4» беззнаковый символ [100] [0] 52 '4' беззнаковый символ [1] 0 '\0' беззнаковый символ [2] 50 '2' беззнаковый символ [3] 0 '\0' беззнаковый символ [4] 51 '3' беззнаковый символ [5] 0 '\0' беззнаковый символ [6] 49 '1' беззнаковый символ [7] 0 '\0' беззнаковый символ [8] 52 '4' беззнаковый символ [9] 0 '\0' беззнаковый символ [10]0 '\0' беззнаковый символ Можно ли как-нибудь не иметь нулевых байтов после каждого символа? Я думаю, это из-за того, что RegEnumValue() вызывается для каждого символа, но я не уверен.
Мобильная версия