Samstag, 20. Oktober 2007

Verstrichene Zeit in C++ unter Windows messen ...

hat mich einige Zeit gekostet eine Lösung zu finden.
Fündig wurde ich unter Get time in milliseconds in Windows

Nachfolgend ein Beispiel wie ich es konkret eingesetzt habe.

   1 ULONGLONG endCalculationAt;
2
3 ULONGLONG GetSystemTimeInMS() {
4 SYSTEMTIME systemTime;
5 GetSystemTime(&systemTime);
6
7 FILETIME fileTime;
8 SystemTimeToFileTime(&systemTime, &fileTime);
9
10 ULARGE_INTEGER uli;
11 uli.LowPart = fileTime.dwLowDateTime; // could use memcpy here!
12 uli.HighPart = fileTime.dwHighDateTime;
13
14 ULONGLONG systemTimeIn_ms(uli.QuadPart/10000);
15 return systemTimeIn_ms;
16 }
17
18 void InitCalculationTime() {
19 endCalculationAt = GetSystemTimeInMS() + (ULONGLONG)(10 * 1000); // ab jetzt 10 Sekunden Zeit
20 }
21
22
23 bool CheckCalculationTimeElapsed() {
24 if(GetSystemTimeInMS() >= endCalculationAt)
25 return true;
26 else
27 return false;
28 }

Keine Kommentare: