Мне нужно получить путь из реестра. Следующий код работает за исключением последней части, где я храню путь к строке. При запуске отладчика в Visual Studio 2008 массив char имеет путь, но все остальные символы - ноль. Это приводит к тому, что строке присваивается только первая буква. Я попытался изменить char res[1024]
на char *res = new char[1024]
, и это просто заставляет его хранить первую букву в массиве символов вместо строки. Остальной программе нужен путь в виде строкового типа данных, поэтому он не может оставаться массивом символов. Что мне здесь не хватает?
unsigned long type=REG_SZ, size=1024;
string path;
char res[1024];
HKEY key;
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("SOFTWARE\\Classes\\dsn\\shell\\open\\command"), NULL, KEY_READ, &key)==ERROR_SUCCESS){
RegQueryValueEx(key,
NULL,// YOUR value
NULL,
&type,
(LPBYTE)res,
&size);
RegCloseKey(key);
path = string(res);
}