StillPhelix
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Доброе время суток! В Visual studio 2010 был создан проект Windows form Application. Программа генерирует серийный номер на основе имени пользователя и "собирает" его в calcCode. Проблема в том, что в эту переменную копируются не символы, а цифры. А должны копироваться символы. Причём эти цифры (в calcCode) не соответствуют символам (по ISCII) символу, из источнока копирования (ch). Значения немного больше. Код: private: System::Void button2_MouseClick(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) { int leng; String ^sName;//Имя пользователя String ^sName1;//Серийный номер WORD twoChar; unsigned char ch; String ^calcCode; leng=this->textBox1->Text->Length; sName=this->textBox1->Text; sName1=this->textBox2->Text; if (leng<0xA) { MessageBox::Show("Ваше имя слишком короткое"); return; } for (int i=0;i<leng-1;i++) { twoChar=(WORD)sName[i]+(WORD)sName[i+1]; ch= (twoChar % 0x20) + 'A'; calcCode+=ch; } if (calcCode==sName1) { MessageBox::Show("Спасибо за регистрацию!"); return; } else { MessageBox::Show("Не правильный регистрационный номер!"); return; } } |
|