逻辑关系Dll,不知道怎么写合适了,请教
注册模块写错一个DLL了,如果注册KEY为空,启动注册模块,
现在是如果注册KEY正确能够正常允许,如果KEY位数不对或是KEY不对,应该是返回界面继续注册不能进入系统界面,我写的逻辑不是很对,达不到此效果。贴出我的代码大家帮忙看下。
注册入口函数
if(regKey=="") { bResult=false; } if (!bResult) { bResult = f->ShowModal() == mrOk; if(!f->bResult) //这点我是想判断KEY不对给一个变量,为假在弹出注册窗体,但是这点2次注册后就进入窗体了,没想起来怎么写合适,如果不加这个判断,KEY不对,程序执行到delete f;就进入窗体了,该怎么写合适 { f->ShowModal()==mrOk; return 0; } else { delete f; } } return bResult;
if((editNum->Text.Length()+editNum2->Text.Length()+editNum3->Text.Length()+editNum4->Text.Length())<20) { MessageBox(Handle,"注册号位数不正确!","注册失败!",0); bResult=false; return; }
f->ShowModal()==mrOk;return 0;
[解决办法]
ShowModal() 返回的是是否按了窗口的确定按钮
[解决办法]
不知道你的注册窗体里面怎么处理的,改成这样试试.
if (!bResult)//如果没有注册 { if( f->ShowModal() == mrOk)//这里判断窗体是不是单击了确定按钮 { //单击了确定改怎么处理,要看你这个注册窗体里面是不是返回mrOk就代表注册成功了 bResult = true; } delete f; } return bResult;
[解决办法]
不要把简单的事情复杂化。首先你需要做一个验证注册码的函数,具体的算法不管,假设其原型如下:
bool __fastcall IsValidRegCode(String strRegCode)
{
...
}
用户输入的注册码,如果注册成功,需要存储注册码或者注册成功的状态,可以存到注册表,也可以存到某个文件中,程序启动的时候,先读取注册码或注册的状态,假设有个函数:
String __fastcall LoadRegCode()
{
...
}
然后调用IsValidRegCode函数,判断注册码是否有效,如果无效,弹出注册窗口,假设注册窗口上有个文本框,供输入注册码使用,名字为edtRegCode,那么:
TfrmSoftRegist *f = new TfrmSoftRegist(NULL);
f->ShowModal();
String strRegCode = f->edtRegCode->Text;
delete f;
bool bResult = IsValidRegCode(strRegCode);
这里得到的bResult 的值,就是注册成功与否的标志了,如果成功,把注册码存储到某个文件,就行了。
流程给你讲清楚,自己看着写函数就行了。