timer programmieren
-
hallo!
weiss jemand wie man einen timer programmieren kann der von 60 bis 0 runterzählt??
schonmal vielen dank für eure hilfe!
-
Wie wärs mit
for(int i=60; i>-1; --i) { cout << i << endl; sleep(1); }
Den Header von sleep weis ich aber grad nich
mfg
Glamdring
-
Header: Declared in winbase.h.
Import Library: Use kernel32.lib.
-
ist nur leider Windows spezifisch
-
sleep ist keine Standard-C++ Funktion.
p.s., @Sovok:
Drei Anmerkungen:
1. Niemals winbase.h direkt einbinden! winbase.h wird automatisch durch windows.h eingebunden. Das steht aber auch in der SDK-Doku.
2. Die WinAPI-Funktion heißt Sleep und nicht sleep.
3. Das ist hier ist nicht das WinAPI-Forum.
-
erhalte leider folgende fehlermeldung:
"implicit declaration of function `int sleep(...)'"
gibt es noch eine andere möglichkeit einen timer zu programmieren der auch unter linux läuft?
-
sleep gibt es so in der WinAPI nicht. Das ist POSIX (also auch für Linux gültig) und in der unistd.h definiert. Die WinAPI Version heisst Sleep und arbeitet mit millisekunden (wie nanosleep unter POSIX).
-
ok danke, habe ihn zum laufen gebracht
brauche für Sleep() die windows.h.
wäre sehr nett wenn mir jemand erklären würde wie ich den timer in einen thread packen kann, damit er die ganze anwendung nicht blockiert.
-
Also wenn du schon unter Windows programmierst, dann bitte richtig: In der WinAPI gibt es eine Funktion namens SetTimer. Wenn du damit einen Timer erstellst, schickt Windows deinem Fenster in regelmäßigen Abständen Nachrichten vom Typ WM_TIMER. Den zeitlichen Abstand kannst du mit SetTimer einstellen. Damit kannst du ganz einfach einen Timer erstellen der nach unten zählt.
Threads würde ich für so etwas nicht verwenden; damit handelst du dir nämlich eine Menge neuer potentieller Probleme ein.
-
gibt es denn keinen timer der unter windows UND unix läuft??
-
clanlib/gtk/qt/sdl...
die dürften eigene timer haben bzw. kapseln die timer des jeweiligen systems auf dem sie laufen