Я просто создаю новый раздел реестра MyTestApp и хочу добавить в него новые данные, но не знаю как. Итак, у меня есть следующий код.
bool CreateSectionDataRegistry(CString sectionData, CString sectionValue)
{
HKEY hKey; //registry key handle
LONG lResult; //result of registry operations
DWORD dwType, dwSize=0;
//try to open the key that we are currently pointing at with rootPath
lResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE, rootPath + "\\" + "MyTestApp", NULL, KEY_ALL_ACCESS, &hKey);
if (lResult == ERROR_SUCCESS || lResult == ERROR_MORE_DATA)
{
//we have successfully opened the registry key. Now try to access the data
lResult = RegQueryValueEx(HKEY_LOCAL_MACHINE, sectionData, 0, &dwType, NULL, &dwSize);
if(lResult == ERROR_SUCCESS || lResult == ERROR_MORE_DATA)
{
//data already exists, so just return
RegCloseKey(hKey);
return true;
}
else//section data does not exist, so create new data
{
DWORD dwDisposition;
lResult = RegCreateKeyEx(HKEY_LOCAL_MACHINE, sectionData, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hKey, &dwDisposition);
RegCloseKey(hKey);
return true;
}
}
return false;
}
Но когда я отслеживаю вызов RegCreateKeyEx()
, он возвращает успех, но данные не создаются ни в разделе реестра MyTestApp, ни в каком-либо месте реестра. Использую ли я правильную функцию для создания новых данных в MyTestApp. Также из приведенного выше аргумента у меня есть CString
sectionValue, так как мне проверить, нужно ли мне создавать данные для REG_SZ
или REG_DWORD
?
Спасибо!