<?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[Verwirrung bei einfachem Label]]></title><description><![CDATA[<p>Hallo,<br />
Ich bin noch ein ziemlicher Anfänger was C++ angeht (vor allem bei der Windows Programmierung). In meinem Buch wurde zuerst ein Windows-Programm-Grundgerüst geschrieben, was soweit (mit ein bis zwei Änderungen) dann auch bei mir funktioniert hat. Weiter wurde als Beispiel dann untenstehendes Label erzeugt, was bei mir aber so nicht funktioniert hat, weshalb ich dann weiter getestet habe. Was mich verwirrt sind die Fehlermeldungen... aber lest selbst und versucht mir bitte mal zu erklären, was genau da passiert:</p>
<p>hText = CreateWindow(<br />
&quot;STATIC&quot;,<br />
&quot;Beispieltext&quot;,<br />
WS_VISIBLE | WS_CHILD,<br />
0, 100,<br />
300, 20,<br />
hWnd,<br />
(HMENU) ID_TEXT,<br />
hInst,<br />
NULL);</p>
<p>error C2664: 'CreateWindowExW' : cannot convert parameter 2 from 'const char [7]' to 'LPCWSTR'<br />
1&gt; Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast</p>
<p>--&gt;&gt; Wieso CreateWindowExW? (Der Fehler wurde in der Zeile von CreateWindow gefunden). Laut Buch sollte es funkionieren, tuts aber wie man sieht nicht, also mach ich das was der Compiler sagt...</p>
<p>hText = CreateWindow(<br />
&quot;STATIC&quot;,<br />
(LPCWSTR) &quot;Beispieltext&quot;,<br />
WS_VISIBLE | WS_CHILD,<br />
0, 100,<br />
300, 20,<br />
hWnd,<br />
(HMENU) ID_TEXT,<br />
hInst,<br />
NULL);</p>
<p>error C2664: 'CreateWindowExW' : cannot convert parameter 2 from 'const char [7]' to 'LPCWSTR'<br />
1&gt; Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast</p>
<p>--&gt;&gt; Nichts hat sich geändert... Aber Der 2. Parameter hat auch keine 7 Buchstaben, also ändere ich &quot;STATIC&quot;...</p>
<p>hText = CreateWindow(<br />
(LPCWSTR) &quot;STATIC&quot;,<br />
&quot;Beispieltext&quot;,<br />
WS_VISIBLE | WS_CHILD,<br />
0, 100,<br />
300, 20,<br />
hWnd,<br />
(HMENU) ID_TEXT,<br />
hInst,<br />
NULL);</p>
<p>error C2664: 'CreateWindowExW' : cannot convert parameter 3 from 'const char [13]' to 'LPCWSTR'<br />
1&gt; Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast</p>
<p>--&gt;&gt; Jetzt hat er ein Problem mit dem dritten Parameter. In weister Voraussicht <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="😉"
    /> ändere ich den zweiten...</p>
<p>hText = CreateWindow(<br />
(LPCWSTR) &quot;STATIC&quot;,<br />
(LPCWSTR) &quot;Beispieltext&quot;,<br />
WS_VISIBLE | WS_CHILD,<br />
0, 100,<br />
300, 20,<br />
hWnd,<br />
(HMENU) ID_TEXT,<br />
hInst,<br />
NULL);</p>
<p>--&gt;&gt; Fenster schließt sich sofort nach öffnen wieder. (Hat es ohne das Label nicht)<br />
Oft hat mir bei Strings schon dieses L geholfen, dass ich irgendwo mal gelesen habe, also teste ich es mal. (Was genau bewirkt dieses vorangestellte L?)</p>
<p>hText = CreateWindow(<br />
(LPCWSTR) &quot;STATIC&quot;,<br />
L&quot;Beispieltext&quot;,<br />
WS_VISIBLE | WS_CHILD,<br />
0, 100,<br />
300, 20,<br />
hWnd,<br />
(HMENU) ID_TEXT,<br />
hInst,<br />
NULL);</p>
<p>--&gt;&gt; Fenster schließt sich sofort nach öffnen wieder. Weitertesten!...</p>
<p>hText = CreateWindow(<br />
L&quot;STATIC&quot;,<br />
(LPCWSTR) &quot;Beispieltext&quot;,<br />
WS_VISIBLE | WS_CHILD,<br />
0, 100,<br />
300, 20,<br />
hWnd,<br />
(HMENU) ID_TEXT,<br />
hInst,<br />
NULL);</p>
<p>--&gt;&gt; Fenster öffnet sich, bleibt offen, Text ist da ABER: nicht Beispieltext, sondern 6 chinesische Zeichen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>hText = CreateWindow(<br />
L&quot;STATIC&quot;,<br />
L&quot;Beispieltext&quot;,<br />
WS_VISIBLE | WS_CHILD,<br />
0, 100,<br />
300, 20,<br />
hWnd,<br />
(HMENU) ID_TEXT,<br />
hInst,<br />
NULL);</p>
<p>--&gt;&gt; Alles funktioniert jetzt so wie es soll.<br />
Allerdings bin ich jetzt sehr verwirrt ^^ Bitte um Hilfe, ich denke für nen &quot;Experten&quot; sollte das alles halbwegs verständlich erscheinen <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/topic/220890/verwirrung-bei-einfachem-label</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Apr 2026 08:05:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/220890.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 22 Aug 2008 12:18:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verwirrung bei einfachem Label on Fri, 22 Aug 2008 12:18:42 GMT]]></title><description><![CDATA[<p>Hallo,<br />
Ich bin noch ein ziemlicher Anfänger was C++ angeht (vor allem bei der Windows Programmierung). In meinem Buch wurde zuerst ein Windows-Programm-Grundgerüst geschrieben, was soweit (mit ein bis zwei Änderungen) dann auch bei mir funktioniert hat. Weiter wurde als Beispiel dann untenstehendes Label erzeugt, was bei mir aber so nicht funktioniert hat, weshalb ich dann weiter getestet habe. Was mich verwirrt sind die Fehlermeldungen... aber lest selbst und versucht mir bitte mal zu erklären, was genau da passiert:</p>
<p>hText = CreateWindow(<br />
&quot;STATIC&quot;,<br />
&quot;Beispieltext&quot;,<br />
WS_VISIBLE | WS_CHILD,<br />
0, 100,<br />
300, 20,<br />
hWnd,<br />
(HMENU) ID_TEXT,<br />
hInst,<br />
NULL);</p>
<p>error C2664: 'CreateWindowExW' : cannot convert parameter 2 from 'const char [7]' to 'LPCWSTR'<br />
1&gt; Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast</p>
<p>--&gt;&gt; Wieso CreateWindowExW? (Der Fehler wurde in der Zeile von CreateWindow gefunden). Laut Buch sollte es funkionieren, tuts aber wie man sieht nicht, also mach ich das was der Compiler sagt...</p>
<p>hText = CreateWindow(<br />
&quot;STATIC&quot;,<br />
(LPCWSTR) &quot;Beispieltext&quot;,<br />
WS_VISIBLE | WS_CHILD,<br />
0, 100,<br />
300, 20,<br />
hWnd,<br />
(HMENU) ID_TEXT,<br />
hInst,<br />
NULL);</p>
<p>error C2664: 'CreateWindowExW' : cannot convert parameter 2 from 'const char [7]' to 'LPCWSTR'<br />
1&gt; Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast</p>
<p>--&gt;&gt; Nichts hat sich geändert... Aber Der 2. Parameter hat auch keine 7 Buchstaben, also ändere ich &quot;STATIC&quot;...</p>
<p>hText = CreateWindow(<br />
(LPCWSTR) &quot;STATIC&quot;,<br />
&quot;Beispieltext&quot;,<br />
WS_VISIBLE | WS_CHILD,<br />
0, 100,<br />
300, 20,<br />
hWnd,<br />
(HMENU) ID_TEXT,<br />
hInst,<br />
NULL);</p>
<p>error C2664: 'CreateWindowExW' : cannot convert parameter 3 from 'const char [13]' to 'LPCWSTR'<br />
1&gt; Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast</p>
<p>--&gt;&gt; Jetzt hat er ein Problem mit dem dritten Parameter. In weister Voraussicht <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="😉"
    /> ändere ich den zweiten...</p>
<p>hText = CreateWindow(<br />
(LPCWSTR) &quot;STATIC&quot;,<br />
(LPCWSTR) &quot;Beispieltext&quot;,<br />
WS_VISIBLE | WS_CHILD,<br />
0, 100,<br />
300, 20,<br />
hWnd,<br />
(HMENU) ID_TEXT,<br />
hInst,<br />
NULL);</p>
<p>--&gt;&gt; Fenster schließt sich sofort nach öffnen wieder. (Hat es ohne das Label nicht)<br />
Oft hat mir bei Strings schon dieses L geholfen, dass ich irgendwo mal gelesen habe, also teste ich es mal. (Was genau bewirkt dieses vorangestellte L?)</p>
<p>hText = CreateWindow(<br />
(LPCWSTR) &quot;STATIC&quot;,<br />
L&quot;Beispieltext&quot;,<br />
WS_VISIBLE | WS_CHILD,<br />
0, 100,<br />
300, 20,<br />
hWnd,<br />
(HMENU) ID_TEXT,<br />
hInst,<br />
NULL);</p>
<p>--&gt;&gt; Fenster schließt sich sofort nach öffnen wieder. Weitertesten!...</p>
<p>hText = CreateWindow(<br />
L&quot;STATIC&quot;,<br />
(LPCWSTR) &quot;Beispieltext&quot;,<br />
WS_VISIBLE | WS_CHILD,<br />
0, 100,<br />
300, 20,<br />
hWnd,<br />
(HMENU) ID_TEXT,<br />
hInst,<br />
NULL);</p>
<p>--&gt;&gt; Fenster öffnet sich, bleibt offen, Text ist da ABER: nicht Beispieltext, sondern 6 chinesische Zeichen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>hText = CreateWindow(<br />
L&quot;STATIC&quot;,<br />
L&quot;Beispieltext&quot;,<br />
WS_VISIBLE | WS_CHILD,<br />
0, 100,<br />
300, 20,<br />
hWnd,<br />
(HMENU) ID_TEXT,<br />
hInst,<br />
NULL);</p>
<p>--&gt;&gt; Alles funktioniert jetzt so wie es soll.<br />
Allerdings bin ich jetzt sehr verwirrt ^^ Bitte um Hilfe, ich denke für nen &quot;Experten&quot; sollte das alles halbwegs verständlich erscheinen <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/1569584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1569584</guid><dc:creator><![CDATA[n0_0ne]]></dc:creator><pubDate>Fri, 22 Aug 2008 12:18:42 GMT</pubDate></item><item><title><![CDATA[Reply to Verwirrung bei einfachem Label on Fri, 22 Aug 2008 12:52:09 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>um es sehr anfänger-gerecht und einfach auszudrücken:</p>
<p>Es gibt Projekteinstellungen, die bestimmen, ob ein Programm mit <em>UNICODE</em>- oder <em>ANSI</em>-Zeichen-Unterstützung kompiliert werden soll. An den Fehlern erkennt man, dass du mit der <em>UNICODE</em>-Einstellung arbeitest.</p>
<p>Warum <em>CreateWindowExW</em>, obwohl nicht benutzt?</p>
<p>Zunächst wird der Aufruf von <em>CreateWindow</em> noch vor dem Kompilieren in einen Aufruf von <em>CreateWindowExW</em> &quot;umgewandelt&quot;, das &quot;W&quot; am Ende zeigt an, dass es eine Funktion ist, die <em>UNICODE</em>-Zeichen erwartet (wird in diese Funktion überführt, weil eben deine Einstellungen so sind).</p>
<p>Deswegen sind deine verschiedenen Versuche alle fehlerhaft, nur der letzte Versuch erzeugt wirklich <em>UNICODE</em>-Zeichen, durch Voranstellen von L. Um unabhängig von Einstellungen zu bleiben, kann man das <em>TEXT</em>-Makro verwenden (das funktioniert dann auch, wenn nicht <em>UNICODE</em> eingestellt ist, weil es ein L voranstellt, wenn nötig, und sonst nicht):</p>
<pre><code class="language-cpp">hText = CreateWindow( 
TEXT(&quot;STATIC&quot;), 
TEXT(&quot;Beispieltext&quot;), 
WS_VISIBLE | WS_CHILD, 
0, 100, 
300, 20, 
hWnd, 
(HMENU) ID_TEXT, 
hInst, 
NULL);
</code></pre>
<p>MfG,</p>
<p>Probe-Nutzer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1569611</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1569611</guid><dc:creator><![CDATA[Probe-Nutzer]]></dc:creator><pubDate>Fri, 22 Aug 2008 12:52:09 GMT</pubDate></item><item><title><![CDATA[Reply to Verwirrung bei einfachem Label on Fri, 22 Aug 2008 14:52:12 GMT]]></title><description><![CDATA[<p>Danke für die schnelle Hilfe, das TEXT() Makro gleich mal getestet und für gut befunden <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="😃"
    /> Warum von Unicode etc in dem Buch noch nicht einmal was erwähnt wurde, was bei mir auch schon des öfteren Fehler verursacht hat, verstehe ich nicht. Aber durch die tolle Erklärung ist alles klar! DANKE <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/1569700</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1569700</guid><dc:creator><![CDATA[n0_0ne]]></dc:creator><pubDate>Fri, 22 Aug 2008 14:52:12 GMT</pubDate></item><item><title><![CDATA[Reply to Verwirrung bei einfachem Label on Fri, 22 Aug 2008 19:18:09 GMT]]></title><description><![CDATA[<p>n0_0ne schrieb:</p>
<blockquote>
<p>Warum von Unicode etc in dem Buch noch nicht einmal was erwähnt wurde, was bei mir auch schon des öfteren Fehler verursacht hat, verstehe ich nicht.</p>
</blockquote>
<p>Naja, der Buchautor will Dich damit vermutlich nicht belasten. Es funktioniert ja auch ohne Unicode! Nur mußt Du dann - wie mein Vorposter schon erwähnt hat - Dein Projekt so compilieren, daß es kein Unicode benutzt.<br />
TEXT u. TCHAR (statt char) machen Dich bzw. Deine Datentypen allerdings unabhängig davon, ob Du mit oder ohne Unicode compilierst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1569820</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1569820</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Fri, 22 Aug 2008 19:18:09 GMT</pubDate></item></channel></rss>