<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[timeSetEvent]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich weiß einfach nicht mehr weiter, vielleicht könnt ihr mir helfen. ich hab ein Timer-Problem und weiß nicht, wie ich es lösen soll.. Mein kleines Programm zunächst lautet</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;stdio.h&gt;
#include &lt;conio.h&gt;
#include &lt;mmsystem.h&gt;

int a;
UINT uiTimerID;
void CALLBACK TimerProc(HWND hwnd, UINT message, UINT iTimerID, DWORD
dwTime)
{

	a = 0;
    timeKillEvent(uiTimerID);
}

int main(void)
{
  uiTimerID = timeSetEvent(10000, 10, TimerProc, NULL, TIME_ONESHOT);
  while(!a) { };
}
</code></pre>
<p>Das Problem ist. die Funktion funktionert soweit und wartet auch ab, bis a=0 gesetzt wurde, doch anstatt das Fensterchen in der konsole zu schliessen, kommt ein Programmabbruch durch den Just-In-Time.Debugger mit der Fehlermeldung:<br />
Unbehandelte Win32-Ausnahme in test.exe [1460]<br />
Weiß jemand Rat? Ich benutze Visio C++. Vielen Dank im voraus!!</p>
<p>gruss</p>
<p>payon</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/189829/timesetevent</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 15:21:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/189829.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 17 Aug 2007 10:49:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to timeSetEvent on Fri, 17 Aug 2007 10:50:02 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich weiß einfach nicht mehr weiter, vielleicht könnt ihr mir helfen. ich hab ein Timer-Problem und weiß nicht, wie ich es lösen soll.. Mein kleines Programm zunächst lautet</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;stdio.h&gt;
#include &lt;conio.h&gt;
#include &lt;mmsystem.h&gt;

int a;
UINT uiTimerID;
void CALLBACK TimerProc(HWND hwnd, UINT message, UINT iTimerID, DWORD
dwTime)
{

	a = 0;
    timeKillEvent(uiTimerID);
}

int main(void)
{
  uiTimerID = timeSetEvent(10000, 10, TimerProc, NULL, TIME_ONESHOT);
  while(!a) { };
}
</code></pre>
<p>Das Problem ist. die Funktion funktionert soweit und wartet auch ab, bis a=0 gesetzt wurde, doch anstatt das Fensterchen in der konsole zu schliessen, kommt ein Programmabbruch durch den Just-In-Time.Debugger mit der Fehlermeldung:<br />
Unbehandelte Win32-Ausnahme in test.exe [1460]<br />
Weiß jemand Rat? Ich benutze Visio C++. Vielen Dank im voraus!!</p>
<p>gruss</p>
<p>payon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1346237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1346237</guid><dc:creator><![CDATA[payon]]></dc:creator><pubDate>Fri, 17 Aug 2007 10:50:02 GMT</pubDate></item><item><title><![CDATA[Reply to timeSetEvent on Fri, 17 Aug 2007 11:40:27 GMT]]></title><description><![CDATA[<p>Deine Callback-Funktion hat ne falsche Signatur</p>
<pre><code class="language-cpp">void CALLBACK TimeProc(UINT timerID, UINT message, DWORD dwUser, DWORD dw1, DWORD dw2)
{
...
}
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1346284</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1346284</guid><dc:creator><![CDATA[Airdamn]]></dc:creator><pubDate>Fri, 17 Aug 2007 11:40:27 GMT</pubDate></item><item><title><![CDATA[Reply to timeSetEvent on Fri, 17 Aug 2007 12:52:16 GMT]]></title><description><![CDATA[<p>Vielen dank für die Antwort.</p>
<p>Ich hatte auch nochmals nachgeschaut.<br />
Aber die Signaur ist so vorgegeben:</p>
<pre><code class="language-cpp">void (CALLBACK)(UINT uTimerID, UINT uMsg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2)
</code></pre>
<p>Wo hab ich denn da den Fehler gemacht? Könntest du mir da einen Tipp geben?</p>
<p>Danke und gruss</p>
<p>payon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1346343</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1346343</guid><dc:creator><![CDATA[payon]]></dc:creator><pubDate>Fri, 17 Aug 2007 12:52:16 GMT</pubDate></item><item><title><![CDATA[Reply to timeSetEvent on Fri, 17 Aug 2007 12:53:41 GMT]]></title><description><![CDATA[<p>Schau mal bei Deinem ersten Post die Signatur von TimerProc an, das hast Du z.B. als ersten Parameter HWND...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1346345</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1346345</guid><dc:creator><![CDATA[Airdamn]]></dc:creator><pubDate>Fri, 17 Aug 2007 12:53:41 GMT</pubDate></item><item><title><![CDATA[Reply to timeSetEvent on Fri, 17 Aug 2007 13:30:23 GMT]]></title><description><![CDATA[<p>Autsch stimmt,</p>
<p>wie hat sich das denn dort reingeschlichen. Ich habs jetzt auf die richtige signatur umgestellt</p>
<p>Somit mein kleines Programmchen jetzt:</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;stdio.h&gt;
#include &lt;conio.h&gt;
#include &lt;mmsystem.h&gt;

#define  FREQ 1
int a;
UINT uiTimerID;
void CALLBACK TimerProc(UINT iTimerID, UINT message, DWORD dwUser , DWORD
dw1, DWORD dw2)

{

	a = 0;
    timeKillEvent(uiTimerID);
}

int main(void)
{
  uiTimerID = timeSetEvent(10000, 10, TimerProc, NULL, TIME_ONESHOT);
  while(!a) { };
}
</code></pre>
<p>Das Problemm ist nur jetzt, dass die Endlos-schleife garnicht mehr aufhört zu laufen, und das Programm somit nicht enden bzw beenden will. Hmm, kannst du mir da vielleicht auch weiterhelfen? Das wäre supi!</p>
<p>gruss</p>
<p>payon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1346374</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1346374</guid><dc:creator><![CDATA[payon]]></dc:creator><pubDate>Fri, 17 Aug 2007 13:30:23 GMT</pubDate></item><item><title><![CDATA[Reply to timeSetEvent on Fri, 17 Aug 2007 13:48:15 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;stdio.h&gt;
#include &lt;conio.h&gt;
#include &lt;mmsystem.h&gt;

#define  FREQ 1
int a = 1; // initialisieren
UINT uiTimerID;
void CALLBACK TimerProc(UINT iTimerID, UINT message, DWORD dwUser, DWORD dw1, DWORD dw2)
{
    a = 0;
    timeKillEvent(uiTimerID);
}

int main()
{
    uiTimerID = timeSetEvent(10000, 10, TimerProc, NULL, TIME_ONESHOT);
    while(a) { }; // äquivalent zu while(a != 0)
}
</code></pre>
<p>Das ist natürlich busy waiting was Du machst. Heißt Du belastest die CPU mit der Leerschleife</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1346401</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1346401</guid><dc:creator><![CDATA[Airdamn]]></dc:creator><pubDate>Fri, 17 Aug 2007 13:48:15 GMT</pubDate></item><item><title><![CDATA[Reply to timeSetEvent on Fri, 17 Aug 2007 14:13:26 GMT]]></title><description><![CDATA[<p>Hey vielen, vielen Dank, jetzt klappt alles wunderbar <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>das Programm läuft und wird auch je nach delay ausgeschaltet.<br />
Doch nun hätte ich da vielleicht noch eine Frage. Ich weiß auch, dass diese while-Schleife sehr belastend ist. Und man hört es ja auch direkt am Lüfter, wenn die Funktion aufgerufen wird <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Welche Möglichkeiten würden sich da noch bieten, ausser eine while-Schleife zu verwenden? ich hatte solche Funktionen ebenfalls schon mal mit getch() gesehen. Wäre das eine Möglichkeit, die nicht so belastend für meine CPU wäre?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1346417</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1346417</guid><dc:creator><![CDATA[payon]]></dc:creator><pubDate>Fri, 17 Aug 2007 14:13:26 GMT</pubDate></item><item><title><![CDATA[Reply to timeSetEvent on Fri, 17 Aug 2007 14:19:12 GMT]]></title><description><![CDATA[<p>Du könntest in der Schleife ein Sleep einbauen, somit legt sich Dein Programm für ne gewisse Zeit schlafen. Der TimerEvent ist eh in einem eigenen Thread.</p>
<pre><code class="language-cpp">int main()
{
    uiTimerID = timeSetEvent(10000, 10, TimerProc, NULL, TIME_ONESHOT);
    while(a)
    {
        Sleep(1000); // für eine Sekunde schlafen legen
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1346424</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1346424</guid><dc:creator><![CDATA[Airdamn]]></dc:creator><pubDate>Fri, 17 Aug 2007 14:19:12 GMT</pubDate></item><item><title><![CDATA[Reply to timeSetEvent on Fri, 17 Aug 2007 14:26:12 GMT]]></title><description><![CDATA[<p>Oh das ist ne super Idee.</p>
<p>Jetzt läuft die Schleife durch und der Prozessor wird nicht so stark beantsprucht, da er die Schleife ja nur einmal in der secabruft!</p>
<p>vielen vielen Dank. du hast mir sehr weitergeholfen!<br />
Es funktionert alles und sogar besser, als ich es gehofft habe, da ich überhaupt nicht daran gedacht habe die sleep funtion einzubauen, sowmit vielen Dank für die tollen Tipps und Tricks .</p>
<p>Schönes Wochenende wünsche ich noch!</p>
<p>gruss</p>
<p>payon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1346433</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1346433</guid><dc:creator><![CDATA[payon]]></dc:creator><pubDate>Fri, 17 Aug 2007 14:26:12 GMT</pubDate></item></channel></rss>