Создайте новый раздел реестра Windows с помощью c ++
Как уже упоминалось, вы указали registry параметр REG_OPTION_BACKUP_RESTORE
в вызове RegCreateKeyEx
, что c++ означает, что вы открываете cpp ключ для выполнения резервного c++ копирования или восстановления. Обычно cpp вместо него используется registry REG_OPTION_NON_VOLATILE
.
Какая у вас операционная registry система? В Windows 2000 / XP registry куст реестра HKEY_LOCAL_MACHINE
не доступен registry для записи пользователям registry без прав администратора, поэтому registry RegCreateKeyEx
завершится ошибкой отказа cxx в доступе (ошибка 5). Это windows-registry также относится к Vista, если registry ваше приложение имеет запись c++ requestedExecutionLevel
в своем манифесте. Если registry вы используете Vista и ваше c++ приложение не указывает requestedExecutionLevel
(или registry если у него вообще нет манифеста), доступ registry к HKEY_LOCAL_MACHINE
будет виртуализирован, поэтому cpp RegCreateKeyEx
должен быть успешным. Подробнее cpp см. Registry Virtualization in Windows Vista в MSDN.
Есть еще несколько registry проблем с опубликованным registry вами кодом, которые станут cxx очевидными, только если вы windows-registry скомпилируете свой проект registry с определенным UNICODE
. Эта строка:
LPCTSTR data = "OtherTestData\0";
должно registry быть
LPCTSTR data = TEXT("OtherTestData\0");
и эта строка:
LONG setRes = RegSetValueEx(hKey, value, 0, REG_SZ,
(LPBYTE)data, _tcslen(data)+1);
должно быть:
LONG setRes = RegSetValueEx(hKey, value, 0, REG_SZ,
(LPBYTE)data, (_tcslen(data)+1) * sizeof(TCHAR));
потому c++ что параметр cbData
в RegSetValueEx
- это длина cxx данных в байтах, а не в символах.
Надеюсь, это c++ поможет!
c++
registry
Создайте новый раздел реестра Windows с помощью c ++
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.