Timer in einer Konsolenanwedung
-
Guten Tag

Ich habe hier ein problem und zwar habe ich ein problem mit dem code hierif (packet[2] == 0x32) { DWORD id; memcpy((void*)&id,(void*)((DWORD)packet+3),4); if (test == 1) { int i; for (i=0;i<6;i++) { Send(0x01,"bd",1,id); } } }Es funktioniert alles einwandfrei nur habe ich das problem das mein programm sich aufhängt weil es andauernd den packet 0x32 reinbekommt...
Deswegen wollte ich das alles mit einem timer lösen.
Ich bitte euch im hilfe weil ich kriege es nicht hin hier einen timer reinzubekommen.
Wie schon im threadnamen gesagt es handelt sich hierbei auch um eine konsolenanwedung
Danke euch schonmal
-
Unter Windows kannst du einen Timer mit SetTimer/KillTimer machen.
-
ja aber das funktioniert doch nur für fensteranwendungen wegen dem hWnd...
-
Nein, du brauchst kein Fenster-Handle. Lies dir die Doku zu SetTimer durch:
hWnd
[in] Handle to the window to be associated with the timer. This window must be owned by the calling thread. If this parameter is NULL, no window is associated with the timer and the nIDEvent parameter is ignored.Du musst aber, glaube ich, trotzdem in deiner Anwendung Win-Nachrichten verarbeiten, bin mir da nicht ganz sicher...
-
_matze schrieb:
Du musst aber, glaube ich, trotzdem in deiner Anwendung Win-Nachrichten verarbeiten, bin mir da nicht ganz sicher...
Jo, muss er.
Ansonsten gibt's noch Timer die in einem eigenen Thread feuern, und APCs kann man glaub' ich auch irgendwie misbrauchen. Aber für APCs muss man dann den Thread wieder in einen "alertable state" bringen - kann man gleich nen Message-Loop machen.