var Valeur : Int64; QueryPerformanceCounter(Valeur); La fonction renvoi dans Valeur.
Attention aux résultat inattendus ! cette fonction renvoie un booléen si elle a trouvé un compteur haute résolution :"The QueryPerformanceCounter function retrieves the current value of the high-resolution performance counter, if one exists." Il serait plus exact d'écrire :if not QueryPerformanceCounter(Valeur) then Valeur :=GetTickCount;
ouais, mais ca c pour les vieu 386,..; d'après ce ke l'on ma di :) normalement les processeur d'aujourd'hui ca marche :)
avec une unité bien plus précise ke la milliseconde ==> quel unité? J'ai tenter de trouver, apparament c'est GetTickCount * 3579 Mais je suis pas sur!
je pense que C par rapport au cycle d 'horloge car pour avoir un nombre en ms il fo le diviser par la frequence calculé du CPU =freq,deb,fin : int64;QueryPerformanceFrequency(freq);QueryPerformanceCounter(deb);// dataQueryPerformanceCounter(fin);FormatFloat('0.000000 ms', (fin-deb)/freq*1000);on aura le chiffre exact en ms
Bien utile cette source .. et simple en plus ... 8/10j'ai remarqué une chose ;Ayant voulu vérifier les dires de msx j'ai créer un nouveau projet avec un bouton et un timer.Le code du bouton : QueryPerformanceFrequency(freq); QueryPerformanceCounter(deb); timer1.enabled := true; //plus précis d'actiover le timer icile code du timer (interval fixé a 1000 ms) : QueryPerformanceCounter(fin); Timer1.Enabled := false; ShowMessage(FormatFloat('0.000000 ms', (fin-deb)/freq*1000));J'ai cliqué plusieur fois sur le bouton et le temps que le timer m'affiche varie de 993 ms à 1007 ms en une belle courbe gaussienne ...C'est normal qu'il puisse se planter de 7 ms (j'ai même été à 8 ms : 992 ms) ???
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte
1 598 782 membres 51 nouveaux aujourd'hui 15 441 membres club