Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

как работает ф-ция реестра RegGetValue ?

13K
23 апреля 2009 года
MXM
22 / / 16.08.2006
привет всем!
мне нужно прочесть из реестра несколько параметров
нашел функцию RegGetValue(...).
в msdn-е нет примера на нее ...
только объявление.
у меня в студии происходит "вылет" из за неё((
есть у кого какой пример ?
355
23 апреля 2009 года
<SCORP>
786 / / 21.10.2006
ключ реестра открыл? вот так
 
Код:
HKEY key;
RegOpenKeyEx(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion\\Run",0,KEY_QUERY_VALUE,&hKey );
13K
27 апреля 2009 года
MXM
22 / / 16.08.2006
у меня все равно вылетает прога(
261
27 апреля 2009 года
ahilles
1.5K / / 03.11.2005
давай сюда код
13K
27 апреля 2009 года
MXM
22 / / 16.08.2006
вот кусок кода...

Код:
#define reg_run "Software\\Microsoft\\Windows\\CurrentVersion\\Run"
#define reg_parm "Software\\Microsoft\\Windows\\CurrentVersion"
......
//----------------устанавливаю парам в реестре
void SetupParm(char *InfoDay, char *Th, char *Tm){
    HKEY runPar = NULL;
 
    RegOpenKeyEx(HKEY_CURRENT_USER, reg_parm, 0, KEY_WRITE, &runPar);
   
    RegSetValueEx(runPar,"TDay" ,0, REG_SZ, (PBYTE)InfoDay,10);
    RegSetValueEx(runPar,"Th" ,0, REG_SZ, (PBYTE)Th,3);
    RegSetValueEx(runPar,"Tm" ,0, REG_SZ, (PBYTE)Tm,3);
   
    RegCloseKey(runPar);
}

//--------------читаю из реестра
void ReadParm(char *InfoDay, char *Th, char *Tm){
    HKEY rParm;
    LPDWORD pdwType;
    PVOID pvData;
    LPDWORD pcbData;

    RegOpenKeyEx(HKEY_CURRENT_USER,reg_parm,0,KEY_QUERY_VALUE,&rParm);  
    RegGetValue(rParm,"TDay",0,1,pdwType,pvData,pcbData); //без этой строки не вылетает(  
}


и выдает студия сообщение:Unhandled exception at 0x777ba42e in winTimer.exe: 0xC0000005: Access violation reading location 0x000000f4.
355
27 апреля 2009 года
<SCORP>
786 / / 21.10.2006
 
Код:
LPDWORD pdwType;
    PVOID pvData;
    LPDWORD pcbData;


это объявление трёх указателей. в функции RegGetValue наеврняка производится попытка записи значений по этим адресам. но т.к. память под эти указатели не выделена, то всё это дело благополучно валиться
правильно будет объявить эти переменный как DWORD, LPVOID (и соответственно выделить под него память) и DWORD. ну и амперсандов наставить немного.
кароч книжку читать - вот совет
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог