Друзья, подскажите, в чем проблема! В общем, я в Висте работаю с реестром. Запись в реестр рпоисходит на УРА, без проблем. Когда же начинаю читать записанные данные — такая лажа получается!!!! Вот код чтения из реестра строки:
HKEY hKey;
char sz[MAX_PATH];
char szPath[MAX_PATH];
DWORD dwSize;
LONG lRet;
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T(key_way), 0, KEY_QUERY_VALUE, &hKey) != ERROR_SUCCESS)
return "";
sz[sizeof(sz)-1] = '\0';
dwSize = MAX_PATH;
lRet = RegQueryValueEx(hKey, _T(item_name), NULL, NULL, (LPBYTE)sz, &dwSize);
if (lRet != ERROR_SUCCESS || sz[sizeof(sz)-1] != '\0')
return "";
MessageBox(NULL,sz,"ilock - sz2",MB_OK | MB_SYSTEMMODAL);
ExpandEnvironmentStrings(sz, szPath, sizeof(szPath));
RegCloseKey(hKey);
return szPath;
В Висте всегд возвращается одна и таже строка, в то время как значение ключа изменяется периодически... Узнал, что проблема может быть в том, что в Висте все ключи в Юникоде. Попробовал использовать юникод версию — нифига, вообще не может получить значение ключа. Что делать?