Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с RegQueryValueEx, Счетчик включений программы 
V
    Опции темы
vadimled
Дата 3.10.2006, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 30.5.2006

Репутация: нет
Всего: нет



Я написал счетчик,который бы блокировал программу после определенного количества включений(в данном случае 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);  


PM MAIL   Вверх
Damarus
Дата 3.10.2006, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 671
Регистрация: 6.5.2006

Репутация: 6
Всего: 29



Здесь ошибка:
Цитата(vadimled @  3.10.2006,  20:15 Найти цитируемый пост)
dwData= (DWORD)LangKeyValue[0];


PM MAIL ICQ Jabber   Вверх
Earnest
Дата 4.10.2006, 07:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Действительно,  128 нормальных запусков ни на что не наводят?
Как, по твоему, большое число может храниться в одном байте? 


--------------------
...
PM   Вверх
vadimled
Дата 4.10.2006, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 30.5.2006

Репутация: нет
Всего: нет



Да,действительно.Что-то я тормознул.
Спасибо за совет.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0484 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.