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