Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Проблемы с чтением ключа из реестра.


Автор: Damp1L 27.9.2006, 14:27
Читаю из реестра значение, читается всё нормально, если в самой функции проверить значение то всё ок. Но если вызываю функцию из другой (к примеру из main) то за место рузальтата возвращает "яяяяря" и квадратик. Вот листин самой функции.
Код

LPSTR WINAPI GetKey()
{    
BYTE Key[30]="";
HKEY hKey;
RegOpenKeyEx(HKEY_LOCAL_MACHINE,REG_ID,NULL,KEY_READ,&hKey);
DWORD dw=sizeof(Key);
RegQueryValueEx(hKey,(LPCTSTR)NAME_REG_ID,0,NULL,Key,&dw);
RegCloseKey(hKey);
LPSTR temp = (LPSTR)Key;

MessageBox(0,temp,"Проверка",0);
return temp;
    }

Автор: _hunter 27.9.2006, 14:35
потому как (это раз) ты отдаеш указатель на локальный объект
потому как (это два) ты отдаеш указатель.
читай в книге главу "строки"

P.S.
а о проблеме читающие должны догадываться?

Автор: Romikgy 27.9.2006, 14:49
Цитата(Damp1L @  27.9.2006,  13:27 Найти цитируемый пост)
BYTE Key[30]="";

локальная переменая , после выхода из ф_ции она разрушается

Автор: Damp1L 27.9.2006, 14:50
проблема описана за место рузальтата возвращает "яяяяря"  может кто подскажет решение данного сабжа ?

Добавлено @ 14:53 
Цитата(Romikgy @ 27.9.2006,  14:49)
Цитата(Damp1L @  27.9.2006,  13:27 Найти цитируемый пост)
BYTE Key[30]="";

локальная переменая , после выхода из ф_ции она разрушается

Спасиб, проблема решена.

Автор: _hunter 27.9.2006, 15:44
Цитата(Damp1L @  27.9.2006,  14:50 Найти цитируемый пост)
проблема описана за место рузальтата возвращает "яяяяря"

и где написанно что это проблема? может тебе именно эти "яяяяря" и нужны...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)