Форум программистов CodeGuru
20 Октябрь 2018, 08:02:49 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблема с RegQueryValueEx  (Прочитано 16287 раз)
0 Пользователей и 1 Гость смотрят эту тему.
vadimled
Новичок
*
Офлайн Офлайн

Сообщений: 6


Просмотр профиля
« : 03 Октябрь 2006, 18:16:13 »

Я написал счетчик,который бы блокировал программу после определенного количества включений(в данном случае 650-850 включений,в зависимости от rand()). Но после 128ми включений в моем узле реестра("Nutral") появляеться жутко большая цифра и вся работа на смарку.
Помогите разобраться,пожалуйста.
Вот прога:
#define MAX_KEY_BUFFER 80
int w=0;

srand( (unsigned)time( NULL )%650 );
for( w=0; ;  ){
 if(w>=650 && w<=850)
  break;
 w= rand()%850;
}

HKEY hk;
DWORD dwData = 0;
DWORD Type, BuffLen = MAX_KEY_BUFFER;
TCHAR LangKeyValue[MAX_KEY_BUFFER];
LONG lRet;

lRet = RegOpenKeyEx(HKEY_CURRENT_USER,"Nutral",0,KEY_ALL_ACCESS,&hk);
if( lRet != ERROR_SUCCESS ){
 RegCreateKey(HKEY_CURRENT_USER,"Nutral", &hk);
 RegSetValueEx(hk ,"Nutral",0,REG_DWORD,(LPBYTE) &dwData,sizeof(DWORD));
}
else{
 RegQueryValueEx(hk,"Nutral",0,&Type,(LPBYTE)LangKeyValue, &BuffLen);
 dwData= (DWORD)LangKeyValue[0];
 dwData++;
 RegSetValueEx(hk ,"Nutral",  // value name
  0,                 // must be zero
  REG_DWORD,         // value type
  (LPBYTE) &dwData,  // pointer to value data
  sizeof(DWORD));
}
RegCloseKey(hk);
if( dwData >=(DWORD)w )
 exit(0);  
Записан
3V
Администратор
Ветеран
*****
Офлайн Офлайн

Сообщений: 1347



Просмотр профиля WWW
« Ответ #1 : 03 Октябрь 2006, 22:17:20 »

Цитировать
Код:
RegQueryValueEx(hk,"Nutral",0,&Type,(LPBYTE)LangKeyValue, &BuffLen);

Кстати, а зачем так получать значение ?
Вы же записываете DWORD, вот и читайте DWORD. Ну и тип контролируйте.

А вообще, ошибка, имхо, тут:
Цитировать
Код:
dwData= (DWORD)LangKeyValue[0];

Надо бы так:
Код:
dwData= *((DWORD *) LangKeyValue);
Записан

vadimled
Новичок
*
Офлайн Офлайн

Сообщений: 6


Просмотр профиля
« Ответ #2 : 04 Октябрь 2006, 10:37:17 »

Большое спасибо! Все работает как надо.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!