<?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[Winapi Programm sofort beenden]]></title><description><![CDATA[<p>Gibt es einen Befehl ein Winapi Programm sofort (und korrekt?) zu beenden. Ich möchte nicht &quot;PostQuitMessage&quot; einsetzen, denn das Programm soll beim Start schon abgebrochen werden, wenn erkannt wird daß eine Struktur nicht korrekt gefüllt werden kann. Dies geschiet noch vor Erzeugen des Hauptfensters und Erreichen des Eventhandlers.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/239434/winapi-programm-sofort-beenden</link><generator>RSS for Node</generator><lastBuildDate>Mon, 06 Apr 2026 13:10:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/239434.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 23 Apr 2009 12:39:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Winapi Programm sofort beenden on Thu, 23 Apr 2009 12:39:55 GMT]]></title><description><![CDATA[<p>Gibt es einen Befehl ein Winapi Programm sofort (und korrekt?) zu beenden. Ich möchte nicht &quot;PostQuitMessage&quot; einsetzen, denn das Programm soll beim Start schon abgebrochen werden, wenn erkannt wird daß eine Struktur nicht korrekt gefüllt werden kann. Dies geschiet noch vor Erzeugen des Hauptfensters und Erreichen des Eventhandlers.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1700174</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1700174</guid><dc:creator><![CDATA[Benutzername..]]></dc:creator><pubDate>Thu, 23 Apr 2009 12:39:55 GMT</pubDate></item><item><title><![CDATA[Reply to Winapi Programm sofort beenden on Thu, 23 Apr 2009 12:58:30 GMT]]></title><description><![CDATA[<p>Vielleicht mit einem simplen return in WinMain()?</p>
<p>In etwa so:</p>
<pre><code class="language-cpp">signed int WINAPI WinMain( HINSTANCE hinstance, HINSTANCE hinstance_previous, LPSTR pcsz_cmdline, int iCmdShow )
{
bit b_Init_erfolgreich;
MSG s_message = { 0 };

//** Initialisierungen **
//***********************
b_Init_erfolgreich = Startup_initialisieren();
if ( b_Init_erfolgreich == FALSE )
{
  return( -1 );                                     //Programmende, mit Rückgabewert -1 für &quot;Fehler aufgetreten&quot;.
}

//** Hauptfenster erzeugen und sichtbar machen **
//***********************************************
hwnd_window_frame = CreateWindowEx( 0, TCSZ_APP_NAME, NULL,
                                    WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN,
                                    CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
                                    (HWND)NULL, hmenu_hauptmenue, ghinstance_app, NULL );
blabla...

//** Die eigentliche Nachrichtenschleife **
//*****************************************
while ( GetMessage( &amp;s_message, NULL, 0, 0 ) != 0 ) //Nachricht aus der Warteschlange holen.
                                                    //Ist der Rückgabewert=0, dann handelt es sich um WM_QUIT -&gt; Programm beenden.
{
  if ( TranslateAccelerator( ptr_hwnd_fenster, ptr_haccel_accelerator, &amp;s_message ) == 0 )
  {
    TranslateMessage( &amp;s_message );
    DispatchMessage( &amp;s_message );
  }
}

//** Programmende **
//******************
return( 0 );                                        //Rückgabewert=0: Normales Programmende.
} //Ende von WinMain().
</code></pre>
<p>Abhängig davon, ob Du in Startup_initialisieren() Speicher angefordert oder Dateien geöffnet hast:<br />
Diese angeforderten Speicher solltest Du schon in Startup_initialisieren() bereits wieder freigegeben haben, genauso die geöffneten Dateien wieder schließen.</p>
<p>Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1700188</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1700188</guid><dc:creator><![CDATA[Mmacher]]></dc:creator><pubDate>Thu, 23 Apr 2009 12:58:30 GMT</pubDate></item><item><title><![CDATA[Reply to Winapi Programm sofort beenden on Thu, 23 Apr 2009 13:12:07 GMT]]></title><description><![CDATA[<p>Man kan jederzeit exit() (CRT), oder ExitProcess aufrufen.<br />
Wenn Du in WinMain drin bist, musst Du nur einfach einen return ausführen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1700200</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1700200</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 23 Apr 2009 13:12:07 GMT</pubDate></item></channel></rss>