📄 subject_50661.htm
字号:
<p>
序号:50661 发表者:hdy_zj 发表日期:2003-08-25 15:49:08
<br>主题:关于SRAND()函数的问题--奇怪的随机数问题
<br>内容:vc++在产生随机数字的时候,如果产生的数字要不同(时间只有毫秒级差异),如何实现?<BR>现在我的程序在产生时候出现一样的现象。<BR>具体的:我的程序是:<BR>BOOL CMSecondCtlDlg::GetSendData(unsigned char *Data)<BR>{<BR> unsigned char temp=0;<BR> srand((unsigned)time( NULL ));<BR> for(int i=0;i<8;i++)<BR> {<BR> temp=(unsigned char)rand();<BR> Data[i]=temp;<BR> }<BR> Data[0]=0x5A;//5A<BR> Data[1]=0x0;//00<BR><BR> Data[2]=temp>127?0x02:(temp>60?0x00:0x01);//00,01,02<BR> Data[7]=0xA5;//A5<BR><BR> return TRUE;<BR>}<BR>BOOL CMSecondCtlDlg::OnHandle()<BR>{<BR> unsigned char szSend[8];<BR> GetSendData(szSend);<BR>//获取目的IP<BR> CString Msg;<BR> m_DestinIP.GetWindowText(Msg);<BR><BR> m_sockSend.SendTo(szSend,8,m_DestinPort,Msg,0);<BR><BR>/*其他程序<BR>。。。。。。*/<BR>return TRUE;<BR>}<BR><BR>然后我在另外的一个函数(线程)中调用<BR>UINT ShowProc(LPVOID lParam)<BR>{<BR> CMSecondCtlDlg* dlg=(CMSecondCtlDlg*)lParam;<BR> DWORD dwStart,dwStop;<BR><BR> //起始值<BR> dwStop=GetTickCount();<BR> while(TRUE)<BR> {<BR> /*<BR> Other Codes<BR> */<BR><BR> //调用的是CMSecondCtlDlg::OnHandle()<BR> //两次间隔可能是0ms<BR> //问题是在这两次调用中OnHandle()中产生的随机数是一样的<BR> //当然,当时间间隔超过1s后就不一样了,<BR>//问题是如何使上述的两次产生的数据也不一样??????????????????????????????<BR> ::SendMessage(dlg->m_hWnd,WM_DMCTRL,0,0);<BR><BR>/*<BR>Other Codes<BR>*/<BR> }<BR> return 0;<BR>}<BR><BR>2003-8-25 16:23:28
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -