#ifndef LI2DOUBLE #define LI2DOUBLE #define Li2Double(x) ((double)((x).HighPart) * 4.294967296E9 + (double)((x).LowPart)) #endif #include #include static double dInitTime; static int nFirstTime=1; double __stdcall SECOND() { LARGE_INTEGER liCount,liFreq; double secs; BOOL status1,status2; HANDLE hProcess; status1=QueryPerformanceCounter(&liCount); status2=QueryPerformanceFrequency(&liFreq); secs=Li2Double(liCount)/Li2Double(liFreq); if (nFirstTime==1) { hProcess=GetCurrentProcess(); //SetProcessAffinityMask(hProcess,(DWORD)0); //SetPriorityClass(hProcess,REALTIME_PRIORITY_CLASS); dInitTime=secs; nFirstTime=0; } // printf("The clock frequency is %lf\n",Li2Double(liFreq)); secs-=dInitTime; //printf("secs: %lf\n",secs); return secs; } double second() { LARGE_INTEGER liCount,liFreq; double secs; BOOL status1,status2; HANDLE hProcess; status1=QueryPerformanceCounter(&liCount); status2=QueryPerformanceFrequency(&liFreq); secs=Li2Double(liCount)/Li2Double(liFreq); if (nFirstTime==1) { hProcess=GetCurrentProcess(); //SetProcessAffinityMask(hProcess,0); //SetPriorityClass(hProcess,REALTIME_PRIORITY_CLASS); dInitTime=secs; nFirstTime=0; } secs-=dInitTime; // printf("status 1:%d status2:%d secs: %lf\n",status1,status2,secs); return secs; }