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.
Andreas S. Gast |
Andreas S. Gast |
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.
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
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.
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)
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 und zudem kann man meine methode auch in konsolenanwendungen benutzen (aber das solltest du wissen )
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 )
ps: dich trifft man hier öfters warum registriert du dich nicht?
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 setzen | Hot spots in Mozilla (netscape) » | ||