win 32api之:GetTickCount
GetTickCount函数 函数功能:GetTickCount返回(retrieve)从操作系统启动到现在所经过(elapsed)的毫秒数,它的返回值是DWORD。 函数原型: DWORD GetTickCount(void); VB版 VB声明: Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount" () As Long 例如:实现延时 Public Sub Sleep(numa As Long) Dim num1 As Long Dim num2 As Long Dim numb As Long numb = 0 num1 = GetTickCount Do While numa - numb > 0 num2 = GetTickCount numb = num2 - num1 DoEvents Loop End Sub C++版 CString s; DWORD k=::GetTickCount(); //获取毫秒级数目 int hm=k/3600000; //hm为小时数 int ms=(k-3600000*hm)/60000; //ms为分钟数 int se=(k-3600000*hm-60000*ms)/1000; //se为秒数(除以1000是因为k精确到毫秒) s.Format("%d:%d:%d",hm,ms,se); //输出时、分、秒 库文件:kernl32.dll C/C++头文件:winbase.h windows程序设计中可以使用头文件windows.h 程序示例//代替time函数来初始化随机数生成器 #include<stdio.h> #include<windows.h> int main() { int i,k,r; for(i=0;i<10;i++) { srand(GetTickCount()); printf("/n"); for(k=0;k<5;k++) { r=rand(); printf("%d ",r); } } return 0; } 注意事项 GetTickcount函数:它返回从操作系统启动到当前所经过的毫秒数,常常用来判断某个方法执行的时间,其函数原型是DWORD GetTickCount(void),返回值以32位的双字类型DWORD存储,因此可以存储的最大值是2-1 ms约为49.71天,因此若系统运行时间超过49.71天时,这个数就会归0,MSDN中也明确的提到了:"Retrieves the number of milliseconds that have elapsed since the system was started,up to 49.7 days."。因此,如果是编写服务器端程序,此处一定要万分注意,避免引起意外的状况。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |