<?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[Compilerfehler: wstring per DrawTextW ausgeben lassen]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe jetzt schon den halben Tag mit Suchen nach einer einfachen<br />
Lösung verbracht aber ich bin nicht wirklich fündig geworden. Nun<br />
frage ich doch mal die Fachmänner hier, da ich null Ahnung von der<br />
WinAPI und nur sehr wenig C/C++ Kenntnisse habe.</p>
<p>Ich möchste ein std::wstring mithilfe der Winapi-Funktion DrawTextW,<br />
die ja bei UNICODE verwendet wird, in einem rechteckigen Bereich im<br />
erzeugten Fenster ausgeben lassen. Erhalte aber folgende Fehlermeldung<br />
beim kompilieren mit Visual C++ 2005 EE + PlattformSDK unter WinXP.</p>
<p><strong>error C2664: 'DrawTextW': Konvertierung des Parameters 2 von 'std::wstring' in 'LPCWSTR' nicht möglich</strong></p>
<p>und hier der relevante Codeausschnitt:</p>
<pre><code class="language-cpp">std::wstring a(TEXT(&quot;variable Textausgabe mit DrawText&quot;));

	switch (message) {
	case WM_CREATE:
		return 0;

	case WM_PAINT:
		hdc = BeginPaint (hwnd, &amp;ps);	// Fensterinhalt löschen &amp; Gerätekontext holen 
		GetClientRect (hwnd, &amp;rect);	// Ermitteln der Dimensionen des Fensterinhaltest
		//DrawText (hdc, TEXT (&quot;statische Textausgabe mit DrawText&quot;), -1, &amp;rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
		DrawText (hdc, a, -1, &amp;rect, 0);
		EndPaint (hwnd, &amp;ps);			// Gerätekontext freigeben
		return 0;
	case WM_DESTROY:
		PostQuitMessage (0);			// WM_QUIT(0) Nachricht senden
		return 0;
	}
</code></pre>
<p>Die auskommentierte Zeile mit der statischen Textausgabe funktioniert<br />
selbstverständlich bestens wenn die DrawText-Zeile mit dem wstring<br />
auskommentiert wird. Ich möchte auch in der heutigen Zeit nicht auf UNICODE<br />
verzichten.</p>
<p>Ich bin für jede Hilfe dankbar...</p>
<p>Gruß Chris</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/190343/compilerfehler-wstring-per-drawtextw-ausgeben-lassen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 01 Jul 2026 23:58:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/190343.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 21 Aug 2007 18:27:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Compilerfehler: wstring per DrawTextW ausgeben lassen on Tue, 21 Aug 2007 18:28:30 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe jetzt schon den halben Tag mit Suchen nach einer einfachen<br />
Lösung verbracht aber ich bin nicht wirklich fündig geworden. Nun<br />
frage ich doch mal die Fachmänner hier, da ich null Ahnung von der<br />
WinAPI und nur sehr wenig C/C++ Kenntnisse habe.</p>
<p>Ich möchste ein std::wstring mithilfe der Winapi-Funktion DrawTextW,<br />
die ja bei UNICODE verwendet wird, in einem rechteckigen Bereich im<br />
erzeugten Fenster ausgeben lassen. Erhalte aber folgende Fehlermeldung<br />
beim kompilieren mit Visual C++ 2005 EE + PlattformSDK unter WinXP.</p>
<p><strong>error C2664: 'DrawTextW': Konvertierung des Parameters 2 von 'std::wstring' in 'LPCWSTR' nicht möglich</strong></p>
<p>und hier der relevante Codeausschnitt:</p>
<pre><code class="language-cpp">std::wstring a(TEXT(&quot;variable Textausgabe mit DrawText&quot;));

	switch (message) {
	case WM_CREATE:
		return 0;

	case WM_PAINT:
		hdc = BeginPaint (hwnd, &amp;ps);	// Fensterinhalt löschen &amp; Gerätekontext holen 
		GetClientRect (hwnd, &amp;rect);	// Ermitteln der Dimensionen des Fensterinhaltest
		//DrawText (hdc, TEXT (&quot;statische Textausgabe mit DrawText&quot;), -1, &amp;rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
		DrawText (hdc, a, -1, &amp;rect, 0);
		EndPaint (hwnd, &amp;ps);			// Gerätekontext freigeben
		return 0;
	case WM_DESTROY:
		PostQuitMessage (0);			// WM_QUIT(0) Nachricht senden
		return 0;
	}
</code></pre>
<p>Die auskommentierte Zeile mit der statischen Textausgabe funktioniert<br />
selbstverständlich bestens wenn die DrawText-Zeile mit dem wstring<br />
auskommentiert wird. Ich möchte auch in der heutigen Zeit nicht auf UNICODE<br />
verzichten.</p>
<p>Ich bin für jede Hilfe dankbar...</p>
<p>Gruß Chris</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1349253</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1349253</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 21 Aug 2007 18:28:30 GMT</pubDate></item><item><title><![CDATA[Reply to Compilerfehler: wstring per DrawTextW ausgeben lassen on Tue, 21 Aug 2007 18:41:21 GMT]]></title><description><![CDATA[<p>Naja, steht eigentlich in der Fehlermeldung, was falsch ist. Er erwartet einen Pointer! Du übergibst aber ein wstring-Objekt. Und da Win32-API nunmal C ist, ist es unwahrscheinlich das Objekte funktionieren. <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="😉"
    /> Hier die Lösung:</p>
<pre><code class="language-cpp">DrawText (hdc, a.c_str() , -1, &amp;rect, 0);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1349265</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1349265</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Tue, 21 Aug 2007 18:41:21 GMT</pubDate></item><item><title><![CDATA[Reply to Compilerfehler: wstring per DrawTextW ausgeben lassen on Tue, 21 Aug 2007 19:19:07 GMT]]></title><description><![CDATA[<p>Besten dank, das ist die kürzeste und beste Lösung die ich heute gesehen hab und deswegen heissen Pointer Pointer und nicht Objekte *grins</p>
<p>Nochmals herzlichen Dank nun funktioniert es und ich kann mich auf die nächsten Probleme stürzen...</p>
<p>Schönen abend noch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1349283</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1349283</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 21 Aug 2007 19:19:07 GMT</pubDate></item><item><title><![CDATA[Reply to Compilerfehler: wstring per DrawTextW ausgeben lassen on Tue, 21 Aug 2007 20:08:33 GMT]]></title><description><![CDATA[<p>Das ist aber etwas unsicher: Sobald Du auf ANSI kompilierst, gibts Fehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1349317</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1349317</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Tue, 21 Aug 2007 20:08:33 GMT</pubDate></item><item><title><![CDATA[Reply to Compilerfehler: wstring per DrawTextW ausgeben lassen on Tue, 21 Aug 2007 21:08:35 GMT]]></title><description><![CDATA[<p>Das ist nicht schlimm, da es nicht auf Windows ohne Unicode laufen soll und dies auch dem Nutzer auf einem WindowsOS ohne Unicode per MessageBox gesagt wird und dann abbricht.</p>
<p>Wenn auch Ansi erwünscht wäre könnte man doch per Macro anstelle wstring string nutzen oder nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1349348</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1349348</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 21 Aug 2007 21:08:35 GMT</pubDate></item><item><title><![CDATA[Reply to Compilerfehler: wstring per DrawTextW ausgeben lassen on Tue, 21 Aug 2007 23:16:23 GMT]]></title><description><![CDATA[<p>Genau <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/1349408</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1349408</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Tue, 21 Aug 2007 23:16:23 GMT</pubDate></item><item><title><![CDATA[Reply to Compilerfehler: wstring per DrawTextW ausgeben lassen on Tue, 21 Aug 2007 23:57:28 GMT]]></title><description><![CDATA[<p>Naja, ich würde gleich einen typedef nehmen:</p>
<pre><code class="language-cpp">#include &lt;tchar.h&gt;
typedef std::basic_string&lt;TCHAR&gt; tstring;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1349427</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1349427</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 21 Aug 2007 23:57:28 GMT</pubDate></item><item><title><![CDATA[Reply to Compilerfehler: wstring per DrawTextW ausgeben lassen on Wed, 22 Aug 2007 06:27:45 GMT]]></title><description><![CDATA[<p>Das ist selbstverständlich die bessere Lösung, zusammen mit dem Macro TEXT sollte man dann auf der sicheren Seite sein, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1349480</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1349480</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 22 Aug 2007 06:27:45 GMT</pubDate></item><item><title><![CDATA[Reply to Compilerfehler: wstring per DrawTextW ausgeben lassen on Wed, 22 Aug 2007 07:34:02 GMT]]></title><description><![CDATA[<p>Ja, wenn Du durchgehend machst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1349514</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1349514</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Wed, 22 Aug 2007 07:34:02 GMT</pubDate></item><item><title><![CDATA[Reply to Compilerfehler: wstring per DrawTextW ausgeben lassen on Wed, 22 Aug 2007 08:35:51 GMT]]></title><description><![CDATA[<p>Da ich noch ganz am Anfang bin und bestimmt noch mehrmals anfangen werde, wird sich tstring zusammen mit TEXT sehr gut machen. Sieht so aus als wäre man mit dem Duo ziemlich unabhängig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1349581</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1349581</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 22 Aug 2007 08:35:51 GMT</pubDate></item></channel></rss>