IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Utiliser GetTickCount64 avec BCB6


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Baxter67
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 270
    Par défaut Utiliser GetTickCount64 avec BCB6
    Bonjours j'aimerais utiliser GetTickCount64 pour éviter le probléme de la remise a zero du GetTickCount

    Mais je n'arrive pas a l'utiliser avec BCB 6.

    Jai trouver ce post : http://www.developpez.net/forums/d49...ettickcount64/

    Mais c'est en delphi, il est dis qu'il faut déclarer manuellement que GetTickCount64 est dans kernel32.dll

    En delphi le code est le suivant a priori :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    function GetTickCount64: Int64; StdCall; external 'Kernel32.dll' name 'GetTickCount64';
    Coment pouvoir faire la meme chose en BCB 6 ?

    Merci de votre aide
    Cordialement Baxter

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Basiquement, il y a le même problème, tôt ou tard ( ) !
    Il est assez facile de remédier au problème, en 32 bits :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    DWORD Start = GetTickCount();
    // Le temps qui passe
    // puis...
    DWORD Now = GetTickCount();
    DWORD delta;
    if(Now < Start) delta = Now + (0 - Start);
    else delta = Now - Start;
    Donc... il est possible aussi d'incrémenter quelque chose si effectivement on doit filer plus que ne pourrait contenir un DWORD !

    A plus !

  3. #3
    Membre éclairé Avatar de Baxter67
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 270
    Par défaut
    et il est impossible d'utiliser GetTickCount64 avec BCB, car apperement cette fonction se remet a zero que apres plusieur centaine d'années.
    D'apres ce que jai compris en delphi il faut lui dire de chercher la fonction dans kernel32, il n'y a pas cette posibilié en BCB ?

    Mon gros prob de toute fason est de faire un chrono qu'on peut metre en pause.

    A mon avi il faudra que je fasse une List ou je stock le temps ecoulé entre chaque "marche - pause" et additionner le tous.

    Le timer n'est pas préci

    GetTickCount est trop rapidement mis a zero -> la solution de henderson remédie a ce probleme efficacement

    GetTickCount64 ne fonctionne pas actuellement

    Il resterais toujous QueryPerformanceCounter mais sa ne reglera pas mon prob de mise en pause.

    Vue qu'une précision a la seconde me sufirais je peux ausi envisager par ex de faire un TImer qui a pour Interval 500ms et utilser la fonction Time pour chronométré

    Que me conseiller vous, pour etre le plus précis possible tous en permetant de faire un marche pause du chrono de la meilleur fason

    Merci par avance
    Cordialement Baxter

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Quand j'ai vu ton premier sujet à propos du scan du bus PCI à intervalle de 1 seconde, j'avais conseillé de développer un métronome MIDI.
    Ca pouvait paraître comme un simple gag, mais c'est toujours d'actualité !

    Je suis sur le point de le terminer, extrait en particulier d'un programme MIDI style boîte à rythmes que j'avais développé il y a quelques années !
    J'en ai encore pour quelques heures, le temps de mettre en place certaines choses, de bien tester ... bref la routine (au premier et au deuxième degré) !

    J'ai dérivé de TPanel et ça fonctionne comme un bouton : ON (Scan) / Off (Pause) avec la sélection du dispositif MIDI parmi ceux disponibles via son propre popupmenu...

    L'inconvénient est qu'il faut disposer d'une carte son (ou d'une puce sur la carte mère) qui prenne en charge le MIDI d'une manière autonome (sans doute que tout PC digne de ce nom en est-il équipé ???).

    En attendant... patience !
    Ce sera bientôt sur vos écrans !

    A plus !

  5. #5
    Membre éclairé Avatar de Baxter67
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 270
    Par défaut
    ah d'accord, tu vas rire mais quand j'ai lu ton premier post sur ce suget avec les métronomes et les noire etc, jai fais aucun raprochement avec le domaine musicale ... (honte a moi)
    je réfléchissais, mais je n'arrivais pas a trouver ce que tu voulais dire lol

    Maintenant je vois ce que tu veux faire

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Par défaut
    Salut,

    J'avais fait une classe pour gérer la durée d'exécution des tâche avec un système de "pause - continue".

    Le code avait été mis sur les sources C++Builder à l'adresse suivante:
    http://cpp.developpez.com/sources/bc...rairie#ctracer

    Limitation: j'utilisais le QueryPerformanceCounter qui, je crois, ne fonctionne que sous Windows

Discussions similaires

  1. [Kylix 3] Je n'arrive pas à utiliser MySQL
    Par usebob dans le forum EDI
    Réponses: 4
    Dernier message: 15/04/2005, 10h18
  2. Utilisation iterator avec une classe perso
    Par SteelBox dans le forum C++
    Réponses: 19
    Dernier message: 07/03/2005, 11h30
  3. Réponses: 6
    Dernier message: 24/02/2005, 09h44
  4. PB de vue utilisant UNION avec ENTERPRISE MANAGER
    Par punglas dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 22/12/2004, 15h18
  5. Réponses: 12
    Dernier message: 02/02/2004, 13h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo