Computerhilfen.de Logo
Forum
Tipps
News

Timer in C++ starten

Ich will in mein Programm einen Timer einbauen der zählt, wie lange es läuft(Sekundenweise). Dazu möchte ich wissen wie ich diesen in C++ 1.0 starten kann.


Antworten zu Timer in C++ starten:

wtf is C++ 1.0 ?
Sowas wie Linux 9 ?

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

nun du könntest es folgendermassen lösen:
zu beginn die zeit in einer variable speichern
gegen ende dann die differenz zwischen die variable und der aktuellen zeit ausrechnen

Beispiel:

//Benötigter header
#include<mmsystem.h>

//Lib
#pragma comment(lib,"winmm.lib")

//... irgendwo
float fStart = static_cast<float>(timeGetTime);


//... gegen ende
std::cout << "Benötigte Zeit: " << (static_cast<float>(timeGetTime) - fStart) / 1000 << std::endl;

//mal tausend weil die zeit in tausendstelsekunden wieder gegeben wird

ps: timeGetTime() gibt die zeit, die seit dem systemstart vergangen ist in tausendstel sekunden an

(es gibt bestimmt elegentere varianten, aber dies ist halt relativ einfach zu verstehen ;D)
« Letzte Änderung: 10.06.04, 19:07:28 von void »

In reinem C++ nicht möglich,aber es gibt in der WinAPI die Funktion SetTimer.
Diese kann entweder die WM_TIMER Nachricht an dein Fenster schicken,oder an eine Timer-Funktion die die Nachricht verarbeiten kann.
Siehe hierzu die MSDN.
Da ist auch WM_TIMER und KillTimer erklärt,was du auch brauchst.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

sorry das ich dir widersprechen muss Windows.exe,
aber mit SetTimer() setzt man eine zeitspanne, die bei ablauf die nachricht WM_TIMER (vorausgesetzt man übergibt NULL als letzten Parameter) versendet und dadurch kann man
z.b alle 5 sekunden eine bestimmte funktion aufrufen

(man kann auch eine funktion angeben, dann wird diese funktion aufgerufen und WM_TIMER nicht mehr versendet)

void du n00b, das is WinApi und nicht C++ -_-

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

1. spar dir mal deine bemerkungen
2. kann man mit C++ die WinAPI nutzen
3. (mein 1er post) er hat nie gesagt, dass er die WinAPI  NICHT nutzen möchte ;D und zudem kann man meine methode auch in konsolenanwendungen benutzen (aber das solltest du wissen :P)
3.1 (mein 2er post) wollt ich nur die funktion: SetTimer etwas näher erläutern

(ich bitte alle meine posts hier zu ignorieren, wenn Andreas S. unter einer Linux Distri programmiert ;D)

ps: dich trifft man hier öfters warum registriert du dich nicht? ;D

« Letzte Änderung: 10.06.04, 22:45:52 von void »

Ah,ich sehe ich habe mich falsch ausgedrückt.
Genau das meinte ich eigentlich,habe es nur als...hmmm...gegeben betrachtet. Wahrscheinlich habe ich es einfach vergessen zu schreiben.
WM_TIMER wird an das angegebene Window geschickt,jedoch kann man auch im letzten Parameter eine eigene Timer Funktion angeben die die WM_TIMER Nachricht aufnimmt,und,da sie eine CALLBACK Funktion ist,von Windows selbst aufgerufen wird.WM_TIMER wird also auch gesendet,nur hier halt an die Funktion.Sollte mir das Kapitel dazu im Petzold wieder durchlesen :)


« Array feld nachträglich Löschen oder auf NULL setzenHot spots in Mozilla (netscape) »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!