Timer in einer Konsolenanwedung



  • Guten Tag 🙂
    Ich habe hier ein problem und zwar habe ich ein problem mit dem code hier

    if (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.


Anmelden zum Antworten