⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_50661.htm

📁 vc
💻 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>&nbsp;&nbsp;&nbsp;&nbsp;unsigned char temp=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;srand((unsigned)time( NULL ));<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(int i=0;i&lt;8;i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp=(unsigned char)rand();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Data[i]=temp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;Data[0]=0x5A;//5A<BR>&nbsp;&nbsp;&nbsp;&nbsp;Data[1]=0x0;//00<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;Data[2]=temp&gt;127?0x02:(temp&gt;60?0x00:0x01);//00,01,02<BR>&nbsp;&nbsp;&nbsp;&nbsp;Data[7]=0xA5;//A5<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;return TRUE;<BR>}<BR>BOOL CMSecondCtlDlg::OnHandle()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;unsigned char szSend[8];<BR>&nbsp;&nbsp;&nbsp;&nbsp;GetSendData(szSend);<BR>//获取目的IP<BR>&nbsp;&nbsp;&nbsp;&nbsp;CString Msg;<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_DestinIP.GetWindowText(Msg);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;&nbsp;&nbsp;&nbsp;CMSecondCtlDlg* dlg=(CMSecondCtlDlg*)lParam;<BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD dwStart,dwStop;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;//起始值<BR>&nbsp;&nbsp;&nbsp;&nbsp;dwStop=GetTickCount();<BR>&nbsp;&nbsp;&nbsp;&nbsp;while(TRUE)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Other Codes<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;//调用的是CMSecondCtlDlg::OnHandle()<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //两次间隔可能是0ms<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //问题是在这两次调用中OnHandle()中产生的随机数是一样的<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //当然,当时间间隔超过1s后就不一样了,<BR>//问题是如何使上述的两次产生的数据也不一样??????????????????????????????<BR>&nbsp;&nbsp;&nbsp;&nbsp;::SendMessage(dlg-&gt;m_hWnd,WM_DMCTRL,0,0);<BR><BR>/*<BR>Other Codes<BR>*/<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;return 0;<BR>}<BR><BR>2003-8-25 16:23:28

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -