<?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[Problem mit Zeichensätzen]]></title><description><![CDATA[<p>kann mir jemand erklären, warum der Aufruf</p>
<pre><code class="language-cpp">MessageBox(NULL, &quot;Hallo&quot;, &quot;Überschrift&quot;, MB_OK);
</code></pre>
<p>folgenden Fehler Produziert:</p>
<pre><code>j:\msvs projekte\directx tutorial\dxtut01\dxtut01\main.cpp(72) : error C2664: 'MessageBoxW': Konvertierung des Parameters 2 von 'const char [5]' in 'LPCWSTR' nicht möglich
</code></pre>
<p>ich konnte immerhin schon rausfinden, dass es wohl mit dem unicode-zeichensatz zusammenhängt. also hab ich mir gedacht, machen wirs halt so:</p>
<pre><code class="language-cpp">TCHAR text, caption;
char eins[] = &quot;lalalaalla&quot;, zwei[] = &quot;dfkgjb&quot;;

text = (TCHAR)eins;
caption = (TCHAR)zwei;

MessageBox(NULL, (LPCWSTR)text, (LPCWSTR)caption, MB_OK);
</code></pre>
<p>das führt dann dazu, dass zwar der compiler nicht mehr nörgelt, aber die ausgabe leer ist.</p>
<p>ich hab vorher normalerweise winapi mit ANSI C programmiert. da konnte ich dann ganz einfach string-literale und char* an funktionen, die zeichenketten erwarten übergeben. und für mfc anwendungen kann man wohl das _T() makro verwenden um zeichenketten entsprechend umzuwandeln, was auch immer dies im detail tut.<br />
aber nun habe ich den fall, dass ich in einem directx-tutorial eine windows anwendung erstellen wollte mit MS Visualstudio 2005 und in meinem programm praktisch keine literale verwenden kann, bzw es nicht mal hinkriege eine msgbox herzustellen, die &quot;hallo&quot; sagt. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
nun gut, kommt also jetzt der zeitpunkt sich genauer mit den zeichensätzen auseinanderzusetzen, aber mir fehlt leider jedweder anhaltspunkt in dieser hinsicht. was ich in der doku finden konnte, war leider nur die ansage, dass windows halt den typ LPCWSTR definiert, aber das hilft wohl nur leuten weiter, die eh schon bescheid wissen.<br />
wie kann ich denn feststellen oder kontrollieren, welchen zeichensatz mein programm verwendet und wie kann ich im falle von unicode eine messagebox &quot;hallo&quot; sagen lassen?<br />
wenn man als anfänger auf dieses thema trifft, fühlt es sich irgendwie an, als würden microsoft-programmierer einem eine tastatur ins gesicht schlagen.<br />
wenn mir hier jemand weiterhelfen könnte, wäre das echt super. ich hoffe, ich verlange nicht zuviel. ich habe leider keine ahnung, welche ausmaße dieses thema evtl. hat.</p>
<p>gruß &amp; danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/161514/problem-mit-zeichensätzen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Jul 2026 08:40:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/161514.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 07 Oct 2006 14:06:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit Zeichensätzen on Sat, 07 Oct 2006 14:06:57 GMT]]></title><description><![CDATA[<p>kann mir jemand erklären, warum der Aufruf</p>
<pre><code class="language-cpp">MessageBox(NULL, &quot;Hallo&quot;, &quot;Überschrift&quot;, MB_OK);
</code></pre>
<p>folgenden Fehler Produziert:</p>
<pre><code>j:\msvs projekte\directx tutorial\dxtut01\dxtut01\main.cpp(72) : error C2664: 'MessageBoxW': Konvertierung des Parameters 2 von 'const char [5]' in 'LPCWSTR' nicht möglich
</code></pre>
<p>ich konnte immerhin schon rausfinden, dass es wohl mit dem unicode-zeichensatz zusammenhängt. also hab ich mir gedacht, machen wirs halt so:</p>
<pre><code class="language-cpp">TCHAR text, caption;
char eins[] = &quot;lalalaalla&quot;, zwei[] = &quot;dfkgjb&quot;;

text = (TCHAR)eins;
caption = (TCHAR)zwei;

MessageBox(NULL, (LPCWSTR)text, (LPCWSTR)caption, MB_OK);
</code></pre>
<p>das führt dann dazu, dass zwar der compiler nicht mehr nörgelt, aber die ausgabe leer ist.</p>
<p>ich hab vorher normalerweise winapi mit ANSI C programmiert. da konnte ich dann ganz einfach string-literale und char* an funktionen, die zeichenketten erwarten übergeben. und für mfc anwendungen kann man wohl das _T() makro verwenden um zeichenketten entsprechend umzuwandeln, was auch immer dies im detail tut.<br />
aber nun habe ich den fall, dass ich in einem directx-tutorial eine windows anwendung erstellen wollte mit MS Visualstudio 2005 und in meinem programm praktisch keine literale verwenden kann, bzw es nicht mal hinkriege eine msgbox herzustellen, die &quot;hallo&quot; sagt. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
nun gut, kommt also jetzt der zeitpunkt sich genauer mit den zeichensätzen auseinanderzusetzen, aber mir fehlt leider jedweder anhaltspunkt in dieser hinsicht. was ich in der doku finden konnte, war leider nur die ansage, dass windows halt den typ LPCWSTR definiert, aber das hilft wohl nur leuten weiter, die eh schon bescheid wissen.<br />
wie kann ich denn feststellen oder kontrollieren, welchen zeichensatz mein programm verwendet und wie kann ich im falle von unicode eine messagebox &quot;hallo&quot; sagen lassen?<br />
wenn man als anfänger auf dieses thema trifft, fühlt es sich irgendwie an, als würden microsoft-programmierer einem eine tastatur ins gesicht schlagen.<br />
wenn mir hier jemand weiterhelfen könnte, wäre das echt super. ich hoffe, ich verlange nicht zuviel. ich habe leider keine ahnung, welche ausmaße dieses thema evtl. hat.</p>
<p>gruß &amp; danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1151030</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1151030</guid><dc:creator><![CDATA[jule37]]></dc:creator><pubDate>Sat, 07 Oct 2006 14:06:57 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Zeichensätzen on Sat, 07 Oct 2006 16:00:44 GMT]]></title><description><![CDATA[<p>Hallo jule37,</p>
<p>hatte Anfangs auch Probleme mit diesem Unicode Zeugs, bin aber so langsam durch das Thema durchgestiegen.</p>
<p>Um ein bisschen die Basics zu erklären. Eigentlich gibt es die Funktion <em>MessageBox</em> so gar nicht.<br />
Es gibt nur MessageBoxA (für Ansi) und MessageBoxW (für Unicode) und je nach<br />
Einstellung wird entweder die Ansi- oder die Wideversion von MessageBox genommen.</p>
<p>Also hast du bei den IDE Settings deines Projekts Unicode definiert. Nun will der Compiler für MessageBoxW auch einen Wide String, den du ganz einfach so erhälst:<br />
L&quot;Das ist ein Wide String&quot; im Gegensatz zum Ansi String: &quot;Das ist ein Ansi String&quot;.</p>
<p>Praktisch alle Funktionen der WinAPI in denen ein String als Parameter vor kommt, gibt es als Unicode und Ansi Variante, die &quot;Standartfunktion&quot; (z.B. MessageBox)<br />
ist nur ein Platzhalter für die Wide- und Ansifunktion.</p>
<p>TCHAR ist übrigends auch je nach Einstellung einmal char und einmal wchar_t<br />
und das Makro _T() kannst du auch verwenden, wenn du TCHAR.h in dein Projekt einbindest.</p>
<p>Für weitere Infos zu Unicode was das Thema angeht kann ich diese Seiten empfehlen:<br />
<a href="http://www.triptico.com/software/unicode.html" rel="nofollow">http://www.triptico.com/software/unicode.html</a></p>
<p><a href="http://www.cl.cam.ac.uk/~mgk25/unicode.html" rel="nofollow">http://www.cl.cam.ac.uk/~mgk25/unicode.html</a></p>
<p>Gruß<br />
yogle</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1151084</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1151084</guid><dc:creator><![CDATA[yogle]]></dc:creator><pubDate>Sat, 07 Oct 2006 16:00:44 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Zeichensätzen on Sat, 07 Oct 2006 16:21:23 GMT]]></title><description><![CDATA[<p>Wenn Du WinAPI verwendest, dann solltest Du beachten, dass hier meistens mit dem TCHAR Datentyp gearbeitet wird!<br />
=&gt;</p>
<pre><code class="language-cpp">MessageBox(NULL, _T(&quot;Hallo&quot;), _T(&quot;Überschrift&quot;), MB_OK);
</code></pre>
<pre><code class="language-cpp">TCHAR text[] = _T(&quot;lalalaalla&quot;);
TCHAR caption[] = _T(&quot;dfkgjb&quot;);
MessageBox(NULL, text, caption, MB_OK);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1151096</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1151096</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Sat, 07 Oct 2006 16:21:23 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Zeichensätzen on Sat, 07 Oct 2006 16:51:29 GMT]]></title><description><![CDATA[<p>super! danke euch jungs, hab nen stein vom herzen <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/1151118</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1151118</guid><dc:creator><![CDATA[jule37]]></dc:creator><pubDate>Sat, 07 Oct 2006 16:51:29 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Zeichensätzen on Sat, 07 Oct 2006 16:53:52 GMT]]></title><description><![CDATA[<p>jule37 schrieb:</p>
<blockquote>
<p>hab nen stein vom herzen</p>
</blockquote>
<p>Ist das was bedenkliches? Sonst geh mal schnell zum Arzt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1151120</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1151120</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Sat, 07 Oct 2006 16:53:52 GMT</pubDate></item></channel></rss>