<?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 anfänger bringt fenster nicht zum Erscheinen]]></title><description><![CDATA[<p>Hi!<br />
Also ich kann schon einigermaßen C/C++, deswegen dachte ich mir, ich fange mal an, WinAPI zu lernen.<br />
Nun, ich habe jetzt in mehreren Büchern den Abschnitt &quot;Eine einfache Fensteranwendung erstellen&quot; durchelesen, und weil mir eine reine abschreibüng nicht s bringt hab ich mal versucht das ganze so zu schreiben, wie ich das verstanden habe, und nur bei den Funktionsprototypen nachzusehen.<br />
Das ergebnis ist folgendes: Ich habe keine Compilerfehler, allerdings will und will das Fenster nicht erscheinen. Ich habs mit mehreren Beispielcodes verglichen, doch ich kann den fehler leider nicht finden. Ich hab sogar fast Zeile für Zeile mit einer Vorlage verglichen, doch trotzdem nicht gefunden.<br />
Ich bin noch neu in der WinAPI und weiß deswegen nicht einmal, wo ich mit der suche anfangen soll.</p>
<p>Ich benutze Code::Blocks mit dem MinGW compiler, allerdings hab ich auch Dev-Cpp, visual c++ 6 und Visual C++ 2005 ausprobiert, immer mit dem gleichem erfolg.</p>
<p>Hier der quellcode:</p>
<pre><code class="language-cpp">#include &lt;Windows.h&gt;

const int REG_CLASS_ERR = 1;
const int CRE_WND_ERR = 2;
const int SHOW_WND_ERR = 3;
const int UPD_WND_ERR = 4;

// FUNCTION HEADER
LRESULT CALLBACK WndProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);

// FUNCTIONS
int APIENTRY WinMain (HINSTANCE hInstance,
					HINSTANCE hPrevInstance,
					LPSTR lpCmdLine,
					int nCmdShow)

{
	MSG msg;
	WNDCLASSEX wndclass;
	HWND hwnd;

	char* szAppName = &quot;simple_window&quot;;
	int start_x = 100;
	int start_y = 100;
	int height = 600;
	int width = 600;

	/* Filling wndclass Structure */
	wndclass.cbSize = sizeof (WNDCLASSEX);
	wndclass.style = CS_HREDRAW | CS_VREDRAW;
	wndclass.lpfnWndProc = WndProc;
    wndclass.cbClsExtra = 0;
	wndclass.cbWndExtra = 0;
	wndclass.hInstance = hInstance;
	wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
	wndclass.hCursor = LoadCursor (NULL, IDC_ARROW);
	wndclass.hbrBackground = (HBRUSH) GetStockObject (LTGRAY_BRUSH);
	wndclass.lpszMenuName = NULL;
	wndclass.lpszClassName = &quot;simple_window&quot;;
	wndclass.hIconSm =  LoadIcon (NULL, IDI_APPLICATION);

	if (!RegisterClassEx (&amp;wndclass) )
        {
                MessageBox (NULL, TEXT (&quot;RegisterClassEx fehlgeschlagen!&quot;),
                szAppName, MB_OK | MB_ICONERROR);
                return (REG_CLASS_ERR);
        }

	if (! (hwnd = CreateWindowEx(0,
						szAppName,
						&quot;First Window&quot;,
						WS_OVERLAPPEDWINDOW | WS_VISIBLE,
						start_x, start_y,
						height, width,
						HWND_DESKTOP,
						NULL,
						hInstance,
						0) ))
            {
            MessageBox (NULL, TEXT (&quot;CreateWindowEx fehlgeschlagen!&quot;),
            szAppName, MB_OK | MB_ICONERROR);
            return (CRE_WND_ERR);
            }

	ShowWindow (hwnd, nCmdShow);
	UpdateWindow (hwnd);

	while ( GetMessage (&amp;msg, hwnd, 0, 0) )
	{
		TranslateMessage (&amp;msg);
		DispatchMessage (&amp;msg);
	}

	return msg.wParam;

}

LRESULT CALLBACK WndProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
	switch (msg)
	{
	case WM_DESTROY:
		PostQuitMessage(0);
		break;
	default:
		DefWindowProc (hWnd, msg, wParam, lParam);
    }

    return 0;
}
</code></pre>
<p>Wer kann mir helfen, den Fehler zu finden?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/171630/winapi-anfänger-bringt-fenster-nicht-zum-erscheinen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Jul 2026 15:55:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/171630.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 27 Jan 2007 16:52:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to WinAPI anfänger bringt fenster nicht zum Erscheinen on Sat, 27 Jan 2007 16:52:48 GMT]]></title><description><![CDATA[<p>Hi!<br />
Also ich kann schon einigermaßen C/C++, deswegen dachte ich mir, ich fange mal an, WinAPI zu lernen.<br />
Nun, ich habe jetzt in mehreren Büchern den Abschnitt &quot;Eine einfache Fensteranwendung erstellen&quot; durchelesen, und weil mir eine reine abschreibüng nicht s bringt hab ich mal versucht das ganze so zu schreiben, wie ich das verstanden habe, und nur bei den Funktionsprototypen nachzusehen.<br />
Das ergebnis ist folgendes: Ich habe keine Compilerfehler, allerdings will und will das Fenster nicht erscheinen. Ich habs mit mehreren Beispielcodes verglichen, doch ich kann den fehler leider nicht finden. Ich hab sogar fast Zeile für Zeile mit einer Vorlage verglichen, doch trotzdem nicht gefunden.<br />
Ich bin noch neu in der WinAPI und weiß deswegen nicht einmal, wo ich mit der suche anfangen soll.</p>
<p>Ich benutze Code::Blocks mit dem MinGW compiler, allerdings hab ich auch Dev-Cpp, visual c++ 6 und Visual C++ 2005 ausprobiert, immer mit dem gleichem erfolg.</p>
<p>Hier der quellcode:</p>
<pre><code class="language-cpp">#include &lt;Windows.h&gt;

const int REG_CLASS_ERR = 1;
const int CRE_WND_ERR = 2;
const int SHOW_WND_ERR = 3;
const int UPD_WND_ERR = 4;

// FUNCTION HEADER
LRESULT CALLBACK WndProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);

// FUNCTIONS
int APIENTRY WinMain (HINSTANCE hInstance,
					HINSTANCE hPrevInstance,
					LPSTR lpCmdLine,
					int nCmdShow)

{
	MSG msg;
	WNDCLASSEX wndclass;
	HWND hwnd;

	char* szAppName = &quot;simple_window&quot;;
	int start_x = 100;
	int start_y = 100;
	int height = 600;
	int width = 600;

	/* Filling wndclass Structure */
	wndclass.cbSize = sizeof (WNDCLASSEX);
	wndclass.style = CS_HREDRAW | CS_VREDRAW;
	wndclass.lpfnWndProc = WndProc;
    wndclass.cbClsExtra = 0;
	wndclass.cbWndExtra = 0;
	wndclass.hInstance = hInstance;
	wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
	wndclass.hCursor = LoadCursor (NULL, IDC_ARROW);
	wndclass.hbrBackground = (HBRUSH) GetStockObject (LTGRAY_BRUSH);
	wndclass.lpszMenuName = NULL;
	wndclass.lpszClassName = &quot;simple_window&quot;;
	wndclass.hIconSm =  LoadIcon (NULL, IDI_APPLICATION);

	if (!RegisterClassEx (&amp;wndclass) )
        {
                MessageBox (NULL, TEXT (&quot;RegisterClassEx fehlgeschlagen!&quot;),
                szAppName, MB_OK | MB_ICONERROR);
                return (REG_CLASS_ERR);
        }

	if (! (hwnd = CreateWindowEx(0,
						szAppName,
						&quot;First Window&quot;,
						WS_OVERLAPPEDWINDOW | WS_VISIBLE,
						start_x, start_y,
						height, width,
						HWND_DESKTOP,
						NULL,
						hInstance,
						0) ))
            {
            MessageBox (NULL, TEXT (&quot;CreateWindowEx fehlgeschlagen!&quot;),
            szAppName, MB_OK | MB_ICONERROR);
            return (CRE_WND_ERR);
            }

	ShowWindow (hwnd, nCmdShow);
	UpdateWindow (hwnd);

	while ( GetMessage (&amp;msg, hwnd, 0, 0) )
	{
		TranslateMessage (&amp;msg);
		DispatchMessage (&amp;msg);
	}

	return msg.wParam;

}

LRESULT CALLBACK WndProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
	switch (msg)
	{
	case WM_DESTROY:
		PostQuitMessage(0);
		break;
	default:
		DefWindowProc (hWnd, msg, wParam, lParam);
    }

    return 0;
}
</code></pre>
<p>Wer kann mir helfen, den Fehler zu finden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1218164</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1218164</guid><dc:creator><![CDATA[DrPhil_Guth]]></dc:creator><pubDate>Sat, 27 Jan 2007 16:52:48 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI anfänger bringt fenster nicht zum Erscheinen on Sat, 27 Jan 2007 17:37:47 GMT]]></title><description><![CDATA[<p>habe nur schnell geguckt, aber ganz unten:</p>
<pre><code class="language-cpp">LRESULT CALLBACK WndProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    switch (msg)
    {
        case WM_DESTROY:
            PostQuitMessage(0);
        break;
    }

    return DefWindowProc (hWnd, msg, wParam, lParam);
}
</code></pre>
<p>vielleicht funzt es jetzt ja...</p>
<p>Mfg Ominion</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1218198</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1218198</guid><dc:creator><![CDATA[Ominion|off]]></dc:creator><pubDate>Sat, 27 Jan 2007 17:37:47 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI anfänger bringt fenster nicht zum Erscheinen on Sat, 27 Jan 2007 17:39:01 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;tchar.h&gt;

const unsigned short window_height = 600;
const unsigned short window_width = 800;

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int)
{
	MSG			msg;
	WNDCLASSEX	wc;
	HWND		hWnd = NULL;

	ZeroMemory(&amp;wc, sizeof(WNDCLASSES));
	wc.cbSize			= sizeof (WNDCLASSEX);
	wc.style			= 0;
    wc.lpfnWndProc		= WndProc;
	wc.cbClsExtra		= 0;
	wc.cbWndExtra		= 0;
	wc.hInstance		= hInstance;
	wc.hIcon			= LoadIcon(NULL, IDI_APPLICATION);
	wc.hCursor			= LoadCursor(NULL, IDC_ARROW);
	wc.hbrBackground	= static_cast&lt;HBRUSH&gt;(GetStockObject(LTGRAY_BRUSH));
	wc.lpszMenuName		= NULL;
	wc.lpszClassName	= _T(&quot;mywindowclass&quot;);
    wc.hIconSm			= LoadIcon(NULL, IDI_APPLICATION); // Musst de eig mit LoadImage machen ...

    if (!RegisterClassEx(&amp;wc))
	{
		MessageBox(NULL, _T(&quot;RegisterClassEx fehlgeschlagen!&quot;), NULL, MB_OK | MB_ICONERROR);
		return -1;
	}

    if ((hWnd = CreateWindowEx(0, _T(&quot;mywindowclass&quot;), _T(&quot;First Window&quot;), WS_OVERLAPPEDWINDOW | WS_VISIBLE, CW_USEDEFAULT, 0, window_height, window_width, NULL, NULL, hInstance, 0)) == NULL)
	{
		MessageBox (NULL, _T(&quot;CreateWindowEx fehlgeschlagen!&quot;), NULL, MB_OK | MB_ICONERROR);
		return -1;
	}

	while (GetMessage(&amp;msg, hWnd, 0, 0))
	{
		TranslateMessage(&amp;msg);
		DispatchMessage(&amp;msg);
	}

	return static_cast&lt;int&gt;(msg.wParam);
}

LRESULT CALLBACK WndProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    switch (msg)
    {
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, msg, wParam, lParam); // Da hattest du mein ich nen return vergessen ... das sollte der Fehler sein ^^
    }

    return 0;
}
</code></pre>
<p>So den Code ein wenig verbessert ^^ Und den Fehler rausgemacht ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1218199</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1218199</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sat, 27 Jan 2007 17:39:01 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI anfänger bringt fenster nicht zum Erscheinen on Sat, 27 Jan 2007 17:41:01 GMT]]></title><description><![CDATA[<p>Noch was. Beim einen benutzt du hwnd, und beim anderen hWnd...änder das mal Außerdem:</p>
<pre><code class="language-cpp">LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);
</code></pre>
<p>statt</p>
<pre><code class="language-cpp">LRESULT CALLBACK WndProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
</code></pre>
<p>Mfg Ominion</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1218200</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1218200</guid><dc:creator><![CDATA[Ominion|off]]></dc:creator><pubDate>Sat, 27 Jan 2007 17:41:01 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI anfänger bringt fenster nicht zum Erscheinen on Sat, 27 Jan 2007 17:43:17 GMT]]></title><description><![CDATA[<p>Ein Gerüst für ein Fenster gibt es auch auf <a href="http://www.winapi.net" rel="nofollow">www.winapi.net</a>.<br />
Noch eine bitte: hört doch mal mit diesem unnützen casten auf! Das geht genauso gut ohne, und zu verstehen ist das ohne cast für nen Anfänger allemal besser...</p>
<p>Mfg Ominion</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1218202</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1218202</guid><dc:creator><![CDATA[Ominion|off]]></dc:creator><pubDate>Sat, 27 Jan 2007 17:43:17 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI anfänger bringt fenster nicht zum Erscheinen on Sat, 27 Jan 2007 19:10:04 GMT]]></title><description><![CDATA[<p>Danke euch beiden!<br />
Jetzt Hab ich endlich wenigstens eine Rückgabe, und das fenster lässt sich auch schließen, nur den Prozess muss ich mit Strg - Alt - Entf beenden <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="🙂"
    /><br />
Was ich allerdings nun net so verstehe:<br />
Wieso ist es früher nicht gegangen? Was kann den DefWindowProc() schon für nen tollen return wert haben, dass es ohne ihn nicht geht? Schließlich sollten im endeffekt keine änderungen im ablauf sein, denn nur 3 Zeilen danach kommt ja schon das nächste return...</p>
<p>Ominion|off schrieb:</p>
<blockquote>
<p>änder das mal Außerdem:</p>
<pre><code class="language-cpp">LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);
</code></pre>
<p>statt</p>
<pre><code class="language-cpp">LRESULT CALLBACK WndProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
</code></pre>
</blockquote>
<p>Gut mach, ich, nur... Warum? Ich meine bis jetzt hat es noch in allen Programmen funktioniert, und irgendwie empfinde ich die Lesbarkeit besser, wenn ich im Funktionskopf ein paar treffende Variablennamen finde.</p>
<p>Ominion|off schrieb:</p>
<blockquote>
<p>Noch eine bitte: hört doch mal mit diesem unnützen casten auf! Das geht genauso gut ohne, und zu verstehen ist das ohne cast für nen Anfänger allemal besser...</p>
</blockquote>
<p>Bezog sich das auf (D)Evil oder auf mich?<br />
Also den Cast versteh ich schon, nur den sinn dahinter nicht, dass sollte doch bei der nächsten Übergabe sowieso per Standardkonvertierung umgewandelt werden, oder seh ich das falsch?</p>
<p>mfg, DrPhil_Guth</p>
<p>ps.: Ach ja, noch ne frage: Wieso findet man öfters anstatt einen Konstanten String anzugeben die Funktion TEXT() oder _T() wie (D)Evil sie hier angegeben hat? Was ist der vorteil dazu einen normalen Zeiger anzugeben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1218260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1218260</guid><dc:creator><![CDATA[DrPhil_Guth]]></dc:creator><pubDate>Sat, 27 Jan 2007 19:10:04 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI anfänger bringt fenster nicht zum Erscheinen on Sat, 27 Jan 2007 19:45:55 GMT]]></title><description><![CDATA[<p>Erstmal: Du hast ja nur ein Prototyp gemacht. Das heißt, was später damit und besonders darin passiert ist noch offen. Der Prototyp dient dir erstmal nur dazu, dass dein Programm weiß, dass es diese Funktion gibt. In diesem Prototypen gibt man eigentlich immer nur den Typ der Daten ein, der dort ein kommen soll, und spezifiziert diese dann, wenn man die Funktion definiert.</p>
<p>Dann war das auf (D)Evil bezogen.<br />
Aufgrund deiner Aussage, tippe ich mal darauf, dass du den cast meinst:</p>
<pre><code class="language-cpp">return static_cast&lt;int&gt;(msg.wParam);
</code></pre>
<p>Das ist sowieso Schwachsinn, da der einzige Unterschied zwischen int (was msg.wParam nach dem cast ist) und unsigned int (msg.wParam vor dem cast) der ist, dass int auch negative Zahlen beinhalten kann. Das heißt int hat ca. -1,70141·10<sup>38</sup> - 1,70141·10<sup>38</sup> den Bereich und unsigned int hat 3,40282·10<sup>38</sup> als Wertebereich und ist somit besser geeignet, wenn man mit sehr vielen Daten arbeitet, die nicht in den negativen Wertebereich reingehen.</p>
<p>Mfg Ominion</p>
<p>[EDIT]<br />
Also _T () ist nur ein Makro von TEXT (&quot;&quot;). TEXT (&quot;&quot;) wandelt einen String in ANSCII um, und wird immermehr als guter Programmierstil angesehen<br />
[/EDIT]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1218277</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1218277</guid><dc:creator><![CDATA[Ominion]]></dc:creator><pubDate>Sat, 27 Jan 2007 19:45:55 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI anfänger bringt fenster nicht zum Erscheinen on Sat, 27 Jan 2007 20:00:08 GMT]]></title><description><![CDATA[<p>Ominion schrieb:</p>
<blockquote>
<p>[EDIT]<br />
Also _T () ist nur ein Makro von TEXT (&quot;&quot;). TEXT (&quot;&quot;) wandelt einen String in ANSCII um, und wird immermehr als guter Programmierstil angesehen<br />
[/EDIT]</p>
</blockquote>
<p>_T() ist genauso ein Makro wie TEXT(), und es wandelt nicht einen String in &quot;ANSCII&quot; um, sondern sorgt dafür, daß das angegebene Stringliteral je nach Kompilierung als String aus char (ANSI)- oder aus wchar_t (Unicode)-Zeichen angesehen wird.</p>
<p>Und zu gutem Programmierstil gehört IMHO eher, daß man derartige Strings nicht hartcodiert, sondern in Konfigurationsdateien auslagert, so daß sich die Anwendung mit wenig Aufwand lokalisieren läßt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1218285</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1218285</guid><dc:creator><![CDATA[audacia]]></dc:creator><pubDate>Sat, 27 Jan 2007 20:00:08 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI anfänger bringt fenster nicht zum Erscheinen on Sat, 27 Jan 2007 20:02:36 GMT]]></title><description><![CDATA[<p>sag ich ja^^<br />
war mir irgendwie so in Erinnerung wie ich das gesagt habe...</p>
<p>Mfg Ominion</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1218286</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1218286</guid><dc:creator><![CDATA[Ominion]]></dc:creator><pubDate>Sat, 27 Jan 2007 20:02:36 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI anfänger bringt fenster nicht zum Erscheinen on Sat, 27 Jan 2007 20:03:40 GMT]]></title><description><![CDATA[<p>Ominion, was erzählst du da eigentlich? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
<p>Ominion schrieb:</p>
<blockquote>
<p>In diesem Prototypen gibt man eigentlich immer nur den Typ der Daten ein, der dort ein kommen soll, und spezifiziert diese dann, wenn man die Funktion definiert.</p>
</blockquote>
<p>Unsinn.</p>
<blockquote>
<p>Das heißt int hat ca. -1,70141·10<sup>38</sup> - 1,70141·10<sup>38</sup> den Bereich und unsigned int hat 3,40282·10<sup>38</sup> als Wertebereich</p>
</blockquote>
<p>Unsinn.</p>
<blockquote>
<p>TEXT (&quot;&quot;) wandelt einen String in ANSCII um,</p>
</blockquote>
<p>Unsinn.</p>
<blockquote>
<p>und wird immermehr als guter Programmierstil angesehen</p>
</blockquote>
<p>Unsinn.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1218288</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1218288</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Sat, 27 Jan 2007 20:03:40 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI anfänger bringt fenster nicht zum Erscheinen on Sat, 27 Jan 2007 20:06:23 GMT]]></title><description><![CDATA[<blockquote>
<p>Das heißt int hat ca. -1,70141·1038 - 1,70141·1038 den Bereich und unsigned int hat 3,40282·1038 als Wertebereich und ist somit besser geeignet,</p>
</blockquote>
<p>OMG !! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
<p>Ich glaube, du hast das falsche Tutorial erwischt xD Ne das stimmt so nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1218290</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1218290</guid><dc:creator><![CDATA[mikey]]></dc:creator><pubDate>Sat, 27 Jan 2007 20:06:23 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI anfänger bringt fenster nicht zum Erscheinen on Sat, 27 Jan 2007 20:12:33 GMT]]></title><description><![CDATA[<p>Das ist kein Unsinn, zumindest die ersten beiden nicht...<br />
Das erste ist eher der persönliche Programmierstil, deshalb habe ich ja auch nicht gesagt das seins falsch ist, und da Dr_PhilGuth ja auch gesagt hat, dass er seins schöner findet werde ich ihm nicht weiter reinreden. 3. und 4. habe ich ja schon gesagt, ich benutze das Makro nicht, war mir aber sicher, dass das so war wie ich das beschrieben habe, deshalb <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> sage ich nächstes mal nichts wenn ich es nicht benutze...</p>
<p>Mfg Ominion</p>
<p>[EDIT] <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> was ist daran falsch!? habe das aus mindestens 2 Quellen (also die Zahlen nicht, aber was den Unterschied zwischen unsigned und signed betrifft), wobei eine Quelle das sogar studiert haben will!<br />
[/EDIT]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1218291</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1218291</guid><dc:creator><![CDATA[Ominion]]></dc:creator><pubDate>Sat, 27 Jan 2007 20:12:33 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI anfänger bringt fenster nicht zum Erscheinen on Sat, 27 Jan 2007 20:18:07 GMT]]></title><description><![CDATA[<p>Ominion schrieb:</p>
<blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> was ist daran falsch!? habe das aus mindestens 2 Quellen (also die Zahlen nicht, aber was den Unterschied zwischen unsigned und signed betrifft),</p>
</blockquote>
<p>Die Zahlen sind falsch. Was du da als Wertebereich für unsigned int angibst, ist wohl eher der größte darstellbare Wert eines 32bit-<strong>Fließkomma</strong>typen. Und die gibt's nicht unsigned.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1218297</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1218297</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Sat, 27 Jan 2007 20:18:07 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI anfänger bringt fenster nicht zum Erscheinen on Sat, 27 Jan 2007 20:21:00 GMT]]></title><description><![CDATA[<p>Ominion schrieb:</p>
<blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> was ist daran falsch!?</p>
</blockquote>
<p>Variablen des Typs int sind auf gebräuchlichen 32-Bit-Systemen 32 Bit breit. Der Wertebereich umfaßt also 2<sup>32</sup> = 4294967296 verschiedene Zahlen. Bei unsigned int geht der Wertebereich folglich von 0 bis 4294967295, bei unsigned int von -2147483648 bis 2147483647.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1218298</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1218298</guid><dc:creator><![CDATA[audacia]]></dc:creator><pubDate>Sat, 27 Jan 2007 20:21:00 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI anfänger bringt fenster nicht zum Erscheinen on Sat, 27 Jan 2007 20:24:42 GMT]]></title><description><![CDATA[<p>puhhh...ich dachte schon das die theroie komplett falsch ist...</p>
<p>Mfg Ominion</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1218304</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1218304</guid><dc:creator><![CDATA[Ominion]]></dc:creator><pubDate>Sat, 27 Jan 2007 20:24:42 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI anfänger bringt fenster nicht zum Erscheinen on Sun, 28 Jan 2007 16:00:40 GMT]]></title><description><![CDATA[<p>Gut, mal abgesehen von den Datentypen, was genau ist ANSCII ???<br />
Ich kenn nur ASCII und ANSI, von einer Mischform hab ich noch nie was gehört...<br />
Also Is klar, dass man strings lieber außerhalb lagern sollte, allerdings ist mir das für ein einfaches Hello World programm zu umständlich. Als ersatz schreib ich einfach die String- Literale irgendwo oben hin.<br />
Also wenn ihr sagt, dass _T() oder TEXT() besser ist, werd ich den Rat befolgen, hab nämlich nicht viel Ahnung von der WinAPI, geschweige denn von Programmierstil und Trends...<br />
Ne allgemeine Frage: Wo kann finde ich denn eigentlich solche &quot;Stilrichtlinien&quot;? Ich hab nämlich nichts dagegen meinen Code einigermaßen korrekt zu gestalten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1218685</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1218685</guid><dc:creator><![CDATA[DrPhil_Guth]]></dc:creator><pubDate>Sun, 28 Jan 2007 16:00:40 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI anfänger bringt fenster nicht zum Erscheinen on Sun, 28 Jan 2007 16:58:06 GMT]]></title><description><![CDATA[<p>Hmm sorry ich geb es ja zu. So wie ich den Code gepostet hab, sollte es nicht so sinnig sein das TEXT bzw _T Makro zu nutzen, da die WinMain sich ja nicht anpasst. Sorry. Musst du ändern ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1218724</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1218724</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sun, 28 Jan 2007 16:58:06 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI anfänger bringt fenster nicht zum Erscheinen on Sun, 28 Jan 2007 17:17:59 GMT]]></title><description><![CDATA[<p>DrPhil_Guth schrieb:</p>
<blockquote>
<p>Gut, mal abgesehen von den Datentypen, was genau ist ANSCII ???</p>
</blockquote>
<p>Vermutlich aus Halbwissen entstandener Unfug.</p>
<p>DrPhil_Guth schrieb:</p>
<blockquote>
<p>Also Is klar, dass man strings lieber außerhalb lagern sollte, allerdings ist mir das für ein einfaches Hello World programm zu umständlich. Als ersatz schreib ich einfach die String- Literale irgendwo oben hin.</p>
</blockquote>
<p>Klar, daß man das in einem Programm dieses Umfangs nicht macht. Ich schrieb das nur, weil jemand behauptete, solche Stringliterale im Code seien guter Programmierstil <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>DrPhil_Guth schrieb:</p>
<blockquote>
<p>Ne allgemeine Frage: Wo kann finde ich denn eigentlich solche &quot;Stilrichtlinien&quot;?</p>
</blockquote>
<p>Insbesondere durch Erfahrungen, die du während des Lesens und Bewertens diverser Dokumentationen und Bücher und der Quelltexte anderer gewinnst. Es gibt viele gute, aber unterschiedliche Stile, nur über Dinge, die man nicht tun sollte, herscht weitläufige Einigkeit. Deinen eigenen Stil mußt du freilich selbst finden.<br />
Ein paar grundsätzliche Dinge, auf die du vielleicht achten solltest:<br />
- vermeide globale Variablen<br />
- kommentiere unübersichtliche Stellen eindeutig<br />
- schreibe Funktionen reentrant<br />
- gestalte dein Programm modular. Lagere Funktionalitäten in eigene Funktionen/Klassen/Module aus<br />
- schreibe dein Programm, wo immer es sinnvoll sein kann, plattform- und compilerunabhängig<br />
- wenn du die Wahl zwischen einer einfachen, unschönen und einer komplexeren, aber saubereren, erweiterbareren, abstrakteren Lösung hast, nimm letztere</p>
<p>Für C++-Programmierer noch ein paar weitere Ratschläge:<br />
- vermeide Makros<br />
- verwende die Standard-Library und die STL, wann immer es sinnvoll ist<br />
- verstehe Zweck und Verwendung von Konzepten wie Polymorphie, generischer Programmierung, Template-Metaprogrammierung etc.<br />
- entwirf mit diesen Kenntnissen für größere Projekte ein Klassenmodell, das einen erweiterbaren, flexiblen, objektorientierten Lösungsansatz darstellt<br />
- lies Scott Meyers<br />
- glaube niemals, C++ ganz verstanden zu haben</p>
<p>...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1218736</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1218736</guid><dc:creator><![CDATA[audacia]]></dc:creator><pubDate>Sun, 28 Jan 2007 17:17:59 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI anfänger bringt fenster nicht zum Erscheinen on Tue, 30 Jan 2007 12:37:41 GMT]]></title><description><![CDATA[<p>audacia schrieb:</p>
<blockquote>
<p>Insbesondere durch Erfahrungen, die du während des Lesens und Bewertens diverser Dokumentationen und Bücher und der Quelltexte anderer gewinnst. Es gibt viele gute, aber unterschiedliche Stile, nur über Dinge, die man nicht tun sollte, herscht weitläufige Einigkeit. Deinen eigenen Stil mußt du freilich selbst finden.<br />
Ein paar grundsätzliche Dinge, auf die du vielleicht achten solltest:<br />
- vermeide globale Variablen</p>
</blockquote>
<p>Es lässt sicht oft nicht vermeiden. (1)</p>
<blockquote>
<p>- vermeide Makros</p>
</blockquote>
<p>(2)</p>
<blockquote>
<p>- verwende die Standard-Library und die STL, wann immer es sinnvoll ist</p>
</blockquote>
<p>- &lt;vector&gt; ist ein aufgeblähtes Ungetüm mit redundanter Funktionalität hoch 10.<br />
Manchmal ist weniger mehr. (3)</p>
<blockquote>
<p>- glaube niemals, C++ ganz verstanden zu haben<br />
...</p>
</blockquote>
<p>Uneingeschränkte Zustimmung</p>
<p>Nachsatz:<br />
Alle Sprachmittel haben ihre Berechtigung, je nach Aufgabenstellung.<br />
Das gilt speziell auch für globale Variablen und #defines.<br />
Es ist nicht klug, sich selbst aus Prinzip den Einsatz von Sprachmitteln zu verbieten. Vielmehr sollte man immer alle Möglichkeiten ausschöpfen, die es gibt. Wer keine #defines haben will, kann auch Java verwenden.<br />
mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1219754</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1219754</guid><dc:creator><![CDATA[Kritiker4]]></dc:creator><pubDate>Tue, 30 Jan 2007 12:37:41 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI anfänger bringt fenster nicht zum Erscheinen on Tue, 30 Jan 2007 13:48:14 GMT]]></title><description><![CDATA[<p>audacia schrieb:</p>
<blockquote>
<p>DrPhil_Guth schrieb:</p>
<blockquote>
<p>Gut, mal abgesehen von den Datentypen, was genau ist ANSCII ???</p>
</blockquote>
<p>Vermutlich aus Halbwissen entstandener Unfug.</p>
</blockquote>
<p>Tut mir leid, ich bin nur ein Mensch...ich werde mich in Zukunft nicht mehr verschreiben, damit der/die Herr/in mit mir in vollster Weise zufrieden ist <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Mfg Ominion</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1219811</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1219811</guid><dc:creator><![CDATA[Ominion]]></dc:creator><pubDate>Tue, 30 Jan 2007 13:48:14 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI anfänger bringt fenster nicht zum Erscheinen on Wed, 31 Jan 2007 13:16:53 GMT]]></title><description><![CDATA[<p>Danke für eure Antwort Leute! Vielen dank für die Hilfe zum konkreten Problem, das hat mir sehr geholfen. Mittlerweile ist die Verwirrung in der WinAPI- Welt nicht mehr ganz so groß <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    />.<br />
Auch danke für die Tipps zum allgemeinen Sprachgebrauch, davon werd ich mir ein paar dinge abschauen.</p>
<p>Thx leute!</p>
<p>mfg, DrPhil_Guth</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1220467</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220467</guid><dc:creator><![CDATA[DrPhil_Guth]]></dc:creator><pubDate>Wed, 31 Jan 2007 13:16:53 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI anfänger bringt fenster nicht zum Erscheinen on Wed, 31 Jan 2007 13:31:28 GMT]]></title><description><![CDATA[<p>@Kritiker4:<br />
Du kannst - wie ich aus Deinem Post schließe - KEIN C++ oder ? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1220487</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220487</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Wed, 31 Jan 2007 13:31:28 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI anfänger bringt fenster nicht zum Erscheinen on Wed, 31 Jan 2007 14:14:52 GMT]]></title><description><![CDATA[<p>Kritiker4 schrieb:</p>
<blockquote>
<blockquote>
<p>- vermeide globale Variablen</p>
</blockquote>
<p>Es lässt sicht oft nicht vermeiden. (1)</p>
</blockquote>
<p>Das kommt drauf an. Zumindest mit dem Windows-API läßt es sich praktisch immer vermeiden. Ausnahmefälle wie z.B. Shared Memory in DLLs natürlich außen vor gelassen.</p>
<blockquote>
<p>Alle Sprachmittel haben ihre Berechtigung, je nach Aufgabenstellung.<br />
Das gilt speziell auch für globale Variablen und #defines.</p>
</blockquote>
<p>Nicht wenige, z.B. die hier genannten, haben ihre wesentliche Berechtigung in der Unterstützung von C.</p>
<blockquote>
<p>Es ist nicht klug, sich selbst aus Prinzip den Einsatz von Sprachmitteln zu verbieten. Vielmehr sollte man immer alle Möglichkeiten ausschöpfen, die es gibt.</p>
</blockquote>
<p>Klar. Aber was meinst du, warum von manchen Dingen gesagt wird, man solle sie nicht mehr verwenden? Weil es bessere Alternativen gibt!</p>
<blockquote>
<p>Wer keine #defines haben will, kann auch Java verwenden.</p>
</blockquote>
<p>Das war hoffentlich nicht ernst gemeint, oder? Sonst ziehe ich deine Fachkompetenz doch etwas in Zweifel.</p>
<p>Ominion schrieb:</p>
<blockquote>
<p>Tut mir leid, ich bin nur ein Mensch...ich werde mich in Zukunft nicht mehr verschreiben, damit der/die Herr/in mit mir in vollster Weise zufrieden ist <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>Das mit dem Halbwissen bezog sich weniger auf den Schreibfehler. Ich meinte insbesondere diesen Satz, in dem du, deiner Sache offenbar sicher, meiner Vermutung nach aus besagtem Halbwissen erwachsenen Unfug behauptetest:</p>
<p>Ominion schrieb:</p>
<blockquote>
<p>Also _T () ist nur ein Makro von TEXT (&quot;&quot;). TEXT (&quot;&quot;) wandelt einen String in ANSCII um, und wird immermehr als guter Programmierstil angesehen</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1220517</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220517</guid><dc:creator><![CDATA[audacia]]></dc:creator><pubDate>Wed, 31 Jan 2007 14:14:52 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI anfänger bringt fenster nicht zum Erscheinen on Wed, 31 Jan 2007 16:08:51 GMT]]></title><description><![CDATA[<blockquote>
<p>Also _T () ist nur ein Makro von TEXT (&quot;&quot;)</p>
</blockquote>
<p>Hab jetzt nicht nachgeguckt ob dieser Irrtum schon beseitigt wurde... aber das stimmt so nicht. _T(x) ist ein eigenes Makro in tchar.h und macht von der Funktionalität zwar das selbe wie TEXT(x), ist aber nicht von diesem in irgendeiner Weise abhängig. Hab jetzt nicht nachgeguckt... aber _T(x) müsste höchstens von __T(x) abhängig sein <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1220635</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220635</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Wed, 31 Jan 2007 16:08:51 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI anfänger bringt fenster nicht zum Erscheinen on Wed, 31 Jan 2007 18:02:14 GMT]]></title><description><![CDATA[<p>DrPhil_Guth schrieb:</p>
<blockquote>
<p>Danke euch beiden!<br />
Jetzt Hab ich endlich wenigstens eine Rückgabe, und das fenster lässt sich auch schließen, nur den Prozess muss ich mit Strg - Alt - Entf beenden <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>
</blockquote>
<pre><code class="language-cpp">while (GetMessage(&amp;msg, NULL, 0, 0)) {/*...*/}
</code></pre>
<p>AFAIK.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1220674</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220674</guid><dc:creator><![CDATA[plusman]]></dc:creator><pubDate>Wed, 31 Jan 2007 18:02:14 GMT</pubDate></item><item><title><![CDATA[Reply to WinAPI anfänger bringt fenster nicht zum Erscheinen on Thu, 01 Feb 2007 19:31:35 GMT]]></title><description><![CDATA[<p>Jo, hab ich auch gefunden.<br />
Hatte nämlich früher nur die Nachrichten für das Hauptfenster abgefangen, was dann natürlich blöd ist, wenn man keins mehr hat <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> -&gt; Gab dann ne endlosschleife, die dann jeweils 50 % der Prozessoleistung meiner beiden Kerne verbauchte <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1221372</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1221372</guid><dc:creator><![CDATA[DrPhil_Guth]]></dc:creator><pubDate>Thu, 01 Feb 2007 19:31:35 GMT</pubDate></item></channel></rss>