关于工作线程内调用对话框类的成员函数的问题??????????
但是我在线程中调用这个函数,没次结果都一样,线程的作用是将生成的随机数插入数据库
我单步调试的时候,生成的随机数都不一样的,但是一旦执行以后,就一样了
CString CczDlg::Rand(int n)
{
//返回一个N位的随机数
CString num(""),temp;
int i;
srand( (unsigned)time( NULL ) );
for( int k=0;k<n;k++ )
{
i = rand()%10;
temp.Format("%d",i);
num+=temp;
}
return num;
}
for( i=0;i<total;i++ )
{
if( tag==0 )
break;
card=dlg->Rand(9);
pwd=dlg->Rand(6);
p=i+1;
dlg->rs->AddNew();
dlg->rs->PutCollect( "cardid",_variant_t(card) );
dlg->rs->PutCollect( "password",_variant_t(pwd) );
dlg->rs->PutCollect( "createtime",_variant_t(ct) );
dlg->rs->PutCollect( "endtime",_variant_t(et) );
dlg->rs->PutCollect( "tag",_variant_t(1) );
dlg->rs->PutCollect( "mid",_variant_t(mid) );
dlg->rs->Update();
}
问题点数:20、回复次数:6Top
1 楼dirdirdir3(风)回复于 2005-08-01 14:03:57 得分 5
倒,不能够返回局部变量的,使用
CString* CczDlg::Rand(int n)
{
//返回一个N位的随机数
CString *num;
CString temp;
int i;
num=new CString;
(*num)="";
srand( (unsigned)time( NULL ) );
for( int k=0;k<n;k++ )
{
i = rand()%10;
temp.Format("%d",i);
(*num)+=temp;
}
return num;
}
Top
2 楼xundeng(寻灯)回复于 2005-08-01 15:25:53 得分 5
dirdirdir3(风) 有这样的说话嘛?我在线程中经常返回局部变量,也没有出现什么问题
Top
3 楼dbafans(小马哥)回复于 2005-08-01 15:45:31 得分 5
upTop
4 楼seansoe(www.sysmgmt.com.cn)回复于 2005-08-01 16:49:17 得分 5
markTop
5 楼lanhai0859(猪头)回复于 2005-08-01 21:05:36 得分 0
不对啊,是线程内调用对话框的一个函数Top
6 楼lanhai0859(猪头)回复于 2005-08-03 22:43:05 得分 0
我顶一下Top




