je ne sais pas, je ne code pas sous Windows, ce sont les participants à la Section Contribuez qui codent sous Win qui m'avaient dit OK à l'époque..
classique , sans doute, mais peu courant d'avoir le clock en micro en réel ;) et en temps absolu ...
Version imprimable
Peut-être spécifique à GCC, alors, mais en tout cas ça ne marche pas sous VS.
Code de remplacement :Code:
1
2
3
4
5
6
7
8
9 .... #ifdef __linux #include <sys/time.h> #include <unistd.h> #endif #ifdef _WIN32 #include <windows.h> #endif ....
Le QPC sous Windows n'est pas absolu, en fait : il ne représente pas une "date" (type Epoch), mais un simple compteur dont seules les mesures relatives (deltas) sont pertinentes, exactement comme GetTickCount() d'ailleurs.Code:
1
2
3
4
5
6
7
8
9
10
11
12 .... #ifdef _WIN32 FILETIME tval ; __int64 cvt ; GetSystemTimeAsFileTime(&tval); // tval: number of 100-nanosecond intervals since January 1, 1601 (UTC). cvt = ((__int64)tval.dwHighDateTime) << 32 ; cvt |= ((__int64)tval.dwLowDateTime) ; d = (((double)cvt)/10000000.0) ; #else ....
Pas gênant pour un sou dans le contexte d'une fonction de pur chronométrage, bien entendu, bien plus gênant si c'est pour un timestamp (il faut utiliser GetSystemTimeAsFileTime() dans ce cas).
si ça vous intéresse, tiens, je mettrais peut-être dans Contribuez, j'ai un sleep à moi qui fait un sleep "interactif" (appelle le rafraichissement de l'écran par exemple) et surtout utilisable en simulation : un facteur d'accélération/ralentissement permettant par exemple de simuler du temps réel avec un facteur :
Aller 2 fois plus vite , 3, fois, 60 fois (1 minute = 1 seconde), ou au max des possibilités, ou au contraire pause ...
Toujours bon à prendre : OK, c'est très spécifique, mais c'est justement ce genre de code que l'on a le plus de mal à trouver si l'on est "sec" côté idées...
Je me suis contenté de la fonction sleep() cela fonctionne.