Comment pouvons-nous mettre en œuvre notre propre fonction de minuterie dans Windows sans utiliser les fonctions de la bibliothèque? Devrions-nous traiter des instructions en langage assembleur?Comment implémenter le temporisateur usermode en C?
Répondre
Cela dépend de la précision et de la résolution dont vous avez besoin.
En supposant que vous ayez besoin d'une précision supérieure à la seconde, il est courant d'utiliser l'instruction RDTSC
. Mais vous pouvez également utiliser l'API Win32, le QueryPerformanceCounter()
est largement utilisé pour cela.
De nombreuses API comme blocs Threading Building Intel (http://threadingbuildingblocks.org), OpenMP (http://openmp.org), SDL (http://libsdl.org) ou SFML (http://sfml-dev.org), et je pense aussi OpenGL (http://opengl.org) mettre en œuvre une minuterie ou une enveloppe autour d'une minuterie. Dire "sans utiliser les fonctions de la bibliothèque" est un peu vague: Quelle bibliothèque voulez-vous dire spécifiquement? En fin de compte, vous devez utiliser une fonction de bibliothèque, ou un assemblage en ligne, car C++ n'a pas de fonctionnalité de temporisation dans le langage principal. Et sans aucun processeur de minuterie ou autre matériel de chronométrage sous quelque forme que ce soit (*), il n'y a aucun moyen de dire l'heure, pas vaguement, pas exactement.
(*) Cela inclut les fournisseurs de temps Internet.
n'utilisant aucune fonction de bibliothèque C standard ou API Windows – sarat
obtenir l'heure atomclock à partir d'un service d'heure Internet. Sinon, vous aurez toujours affaire à une sorte de bibliothèque-fonctions avec laquelle vous pouvez parler au BIOS, qui est la partie qui rend le tick-tock du Quartz visible à l'OS.
ne sont-ils pas en stdlib? – cobbal
Sans utiliser une seule fonction de bibliothèque? Ou ne pas utiliser des fonctions spécifiques? Je ne vois pas comment vous pouvez obtenir l'heure du système sans un appel lib. – Paxic
J'ai besoin de savoir comment un simple temps peut être implémenté. Bien sûr, il est possible de s'appuyer sur des API de plate-forme. Sans utiliser cela, comment est-ce possible? – sarat