<?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[Kompatibilität von LPCTSTR und std::string]]></title><description><![CDATA[<p>Sind die Datentypen LPCTSTR und std::string vom Zeichensatz her eigentlich zu 100% kompatibel? Aus dem Namen schließe ich, dass LPCTSTR den Datentyp TCHAR benutzt (Long Pointer Const T-Character String), während std::string ja intern, soweit mir bekannt ist, normale char nimmt. Wenn ich also ein paar Funktionen habe, sagen wir, Wrapper für WinAPI-Aufrufe, kann ich da (aus Gründen der Aktualität/Modernität) den std::string nehmen und ihn so ohne weiteres an die Windows-Funktion übergeben oder müßte ich da erst Umwandlungsarbeiten machen?<br />
Ein Beispiel: Geht das hier in Ordnung?</p>
<pre><code class="language-cpp">int MyMessageBox(std::string text, std::string caption, UINT type)
{
	return MessageBox(NULL, text.c_str(), caption.c_str(), type);
}
</code></pre>
<p>Über Sinn und Unsinn könnte man jetzt streiten, aber ist das so erstmal korrekt oder müsste ich die Strings erst noch irgendwie umwandeln, bevor ich sie an MessageBox übergebe?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/164177/kompatibilität-von-lpctstr-und-std-string</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Jul 2026 07:56:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/164177.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 05 Nov 2006 20:53:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Kompatibilität von LPCTSTR und std::string on Sun, 05 Nov 2006 20:53:19 GMT]]></title><description><![CDATA[<p>Sind die Datentypen LPCTSTR und std::string vom Zeichensatz her eigentlich zu 100% kompatibel? Aus dem Namen schließe ich, dass LPCTSTR den Datentyp TCHAR benutzt (Long Pointer Const T-Character String), während std::string ja intern, soweit mir bekannt ist, normale char nimmt. Wenn ich also ein paar Funktionen habe, sagen wir, Wrapper für WinAPI-Aufrufe, kann ich da (aus Gründen der Aktualität/Modernität) den std::string nehmen und ihn so ohne weiteres an die Windows-Funktion übergeben oder müßte ich da erst Umwandlungsarbeiten machen?<br />
Ein Beispiel: Geht das hier in Ordnung?</p>
<pre><code class="language-cpp">int MyMessageBox(std::string text, std::string caption, UINT type)
{
	return MessageBox(NULL, text.c_str(), caption.c_str(), type);
}
</code></pre>
<p>Über Sinn und Unsinn könnte man jetzt streiten, aber ist das so erstmal korrekt oder müsste ich die Strings erst noch irgendwie umwandeln, bevor ich sie an MessageBox übergebe?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169218</guid><dc:creator><![CDATA[Turk Turkleton]]></dc:creator><pubDate>Sun, 05 Nov 2006 20:53:19 GMT</pubDate></item><item><title><![CDATA[Reply to Kompatibilität von LPCTSTR und std::string on Sun, 05 Nov 2006 21:02:42 GMT]]></title><description><![CDATA[<p>Ich würde den std::string *nicht* verwenden, sondern auch abhängig von &quot;TCHAR&quot; ein _tstring&quot; verwenden:</p>
<pre><code class="language-cpp">typedef basic_string&lt;TCHAR, char_traits&lt;TCHAR&gt;, allocator&lt;TCHAR&gt;&gt; _tstring;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1169229</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169229</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Sun, 05 Nov 2006 21:02:42 GMT</pubDate></item><item><title><![CDATA[Reply to Kompatibilität von LPCTSTR und std::string on Sun, 05 Nov 2006 21:12:28 GMT]]></title><description><![CDATA[<p>Oder du differenzierst selbst zwischen std::string und std::wstring ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169239</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169239</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sun, 05 Nov 2006 21:12:28 GMT</pubDate></item><item><title><![CDATA[Reply to Kompatibilität von LPCTSTR und std::string on Sun, 05 Nov 2006 21:16:55 GMT]]></title><description><![CDATA[<p>[quote=CodeFinder]Oder du differenzierst selbst zwischen std::string und std::wstring ...[/quote]<br />
Verzeih die blöde Frage, aber was bedeutet zwischen std::string und std::wstring zu differenzieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169241</guid><dc:creator><![CDATA[Turk Turkleton]]></dc:creator><pubDate>Sun, 05 Nov 2006 21:16:55 GMT</pubDate></item><item><title><![CDATA[Reply to Kompatibilität von LPCTSTR und std::string on Sun, 05 Nov 2006 21:34:00 GMT]]></title><description><![CDATA[<p>Turk Turkleton schrieb:</p>
<blockquote>
<p>CodeFinder schrieb:</p>
<blockquote>
<p>Oder du differenzierst selbst zwischen std::string und std::wstring ...</p>
</blockquote>
<p>Verzeih die blöde Frage, aber was bedeutet zwischen std::string und std::wstring zu differenzieren?</p>
</blockquote>
<p>Naja sowas:</p>
<pre><code class="language-cpp">#if (defined (UNICODE)) || (defined (_UNICODE))
  typedef std::wstring  CString;
#else
  typedef std::string   CString;
#endif // UNICODE || _UNICODE
</code></pre>
<p>EDIT: Entspricht aber summa sumarum Jochen's Vorschlag <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/1169249</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169249</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sun, 05 Nov 2006 21:34:00 GMT</pubDate></item><item><title><![CDATA[Reply to Kompatibilität von LPCTSTR und std::string on Sun, 05 Nov 2006 21:50:16 GMT]]></title><description><![CDATA[<p>Ach so meintest du das.</p>
<p>O.k., ich habe mich jetzt für erstere Variante entschieden. Doch nun gibt es noch ein Problem. Wenn ich folgenden Code schreibe:</p>
<pre><code class="language-cpp">#include &lt;string&gt;
#include &lt;windows.h&gt;

using namespace std;

typedef basic_string&lt;TCHAR, char_traits&lt;TCHAR&gt;, allocator&lt;TCHAR&gt; &gt; STRING;

int MyMessageBox(STRING text, STRING caption, UINT type);

int main ()
{
	MyMessageBox(&quot;Hallo&quot;, &quot;Titel&quot;, MB_OK);

	STRING text=&quot;Text&quot;;
	STRING caption;

	caption=&quot;Caption&quot;;

	MyMessageBox(text, caption, MB_OK);

	return 0;
}

int MyMessageBox(STRING text, STRING caption, UINT type)
{
	return MessageBox(NULL, text.c_str(), caption.c_str(), type);
}
</code></pre>
<p>funktioniert alles. Wenn ich aber ganz oben ein</p>
<pre><code class="language-cpp">#define UNICODE
</code></pre>
<p>schreibe, funktioniert es nicht mehr, wenn ich versuche, einen festen String (variable=&quot;Wert&quot;) zu übergeben. Der Compiler meldet Konvertierungsfehler in Zeile 12, 14 und 17, das heißt, er kennt nun plötzlich keinen Konstruktor und keinen =-Operator mehr, der einen char[] übernimmt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169271</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169271</guid><dc:creator><![CDATA[Turk Turkleton]]></dc:creator><pubDate>Sun, 05 Nov 2006 21:50:16 GMT</pubDate></item><item><title><![CDATA[Reply to Kompatibilität von LPCTSTR und std::string on Sun, 05 Nov 2006 21:54:32 GMT]]></title><description><![CDATA[<p>Turk Turkleton schrieb:</p>
<blockquote>
<p>Wenn ich aber ganz oben ein</p>
<pre><code class="language-cpp">#define UNICODE
</code></pre>
<p>schreibe, funktioniert es nicht mehr, wenn ich versuche, einen festen String (variable=&quot;Wert&quot;) zu übergeben. Der Compiler meldet Konvertierungsfehler in Zeile 12, 14 und 17, das heißt, er kennt nun plötzlich keinen Konstruktor und keinen =-Operator mehr, der einen char[] übernimmt.</p>
</blockquote>
<p>Nimm das Makro</p>
<pre><code class="language-cpp">TEXT(&quot;Ein String&quot;)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1169277</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169277</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sun, 05 Nov 2006 21:54:32 GMT</pubDate></item><item><title><![CDATA[Reply to Kompatibilität von LPCTSTR und std::string on Sun, 05 Nov 2006 22:12:41 GMT]]></title><description><![CDATA[<p>Oh, vielen Dank.<br />
Wenn ich das richtig sehe, müsste man dann ja, wenn man wiederverwertbare Klassen schreibt, immer einen eigenen String definieren und das Makro TEXT benutzen, da man ja nie weiß, ob der Benutzer der Klasse nicht UNICODE definiert hat, stimmt's?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169285</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169285</guid><dc:creator><![CDATA[Turk Turkleton]]></dc:creator><pubDate>Sun, 05 Nov 2006 22:12:41 GMT</pubDate></item><item><title><![CDATA[Reply to Kompatibilität von LPCTSTR und std::string on Sun, 05 Nov 2006 22:40:33 GMT]]></title><description><![CDATA[<p>Das letzte war übrigens eine Frage.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169296</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169296</guid><dc:creator><![CDATA[Turk Turkleton]]></dc:creator><pubDate>Sun, 05 Nov 2006 22:40:33 GMT</pubDate></item><item><title><![CDATA[Reply to Kompatibilität von LPCTSTR und std::string on Sun, 05 Nov 2006 22:46:26 GMT]]></title><description><![CDATA[<p>Turk Turkleton schrieb:</p>
<blockquote>
<p>Oh, vielen Dank.<br />
Wenn ich das richtig sehe, müsste man dann ja, wenn man wiederverwertbare Klassen schreibt, immer einen eigenen String definieren</p>
</blockquote>
<p>Hä, das musst du noch mal erläutern, hab keine Ahnung, was du damit meinst <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>Turk Turkleton schrieb:</p>
<blockquote>
<p>und das Makro TEXT benutzen, da man ja nie weiß, ob der Benutzer der Klasse nicht UNICODE definiert hat, stimmt's?</p>
</blockquote>
<p>Jo das ist korrekt <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/1169298</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169298</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sun, 05 Nov 2006 22:46:26 GMT</pubDate></item><item><title><![CDATA[Reply to Kompatibilität von LPCTSTR und std::string on Sun, 05 Nov 2006 22:47:14 GMT]]></title><description><![CDATA[<p>Turk Turkleton schrieb:</p>
<blockquote>
<p>Das letzte war übrigens eine Frage.</p>
</blockquote>
<p>Immer mit der Ruhe...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169299</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169299</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sun, 05 Nov 2006 22:47:14 GMT</pubDate></item><item><title><![CDATA[Reply to Kompatibilität von LPCTSTR und std::string on Sun, 05 Nov 2006 23:05:40 GMT]]></title><description><![CDATA[<blockquote>
<p>Hä, das musst du noch mal erläutern, hab keine Ahnung, was du damit meinst</p>
</blockquote>
<p>Damit meinte ich: Wenn ich eine Klasse schreibe und diese nimmt Strings als Parameter für irgendwelche Methoden entgegen, dann muss ich doch immer selbst einen String definieren und kann nicht einfach std::string nehmen, da ich ja nie weiß, ob der Programmierer, der meine Klasse benutzt, nun Unicode definiert hat oder nicht. Das heißt, ich müsste jedesmal das machen, was Du am Anfang gesagt hast:</p>
<pre><code class="language-cpp">#if (defined (UNICODE)) || (defined (_UNICODE))
    typedef std::wstring  STRING;
#else
    typedef std::string   STRING;
#endif
</code></pre>
<p>Ich kann also nicht einfach einen vorhandenen String-Typ nehmen und mich darauf verlassen, dass der immer korrekt ist. Liege ich damit richtig?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169304</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169304</guid><dc:creator><![CDATA[Turk Turkleton]]></dc:creator><pubDate>Sun, 05 Nov 2006 23:05:40 GMT</pubDate></item><item><title><![CDATA[Reply to Kompatibilität von LPCTSTR und std::string on Sun, 05 Nov 2006 23:14:41 GMT]]></title><description><![CDATA[<p>Jo damit liegt du richtig...es sei denn du weißt das deine Klasse niemals/nur mit UNICODE benutzt wird.</p>
<p>Du kannst dich aber auch damit absichern:</p>
<pre><code class="language-cpp">#if (defined (UNICODE)) || (defined (_UNICODE))
  #error &quot;Klasse CIrgendwas unterstützt kein UNICODE. Kompilierung wurde abgebrochen!&quot;
#endif
</code></pre>
<p>Oder sowas <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/1169307</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169307</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sun, 05 Nov 2006 23:14:41 GMT</pubDate></item><item><title><![CDATA[Reply to Kompatibilität von LPCTSTR und std::string on Sun, 05 Nov 2006 23:26:40 GMT]]></title><description><![CDATA[<p>Wieso haben die das nicht gleich von vornherein in den Standard-String reingenommen? So dass der entsprechend definiert wird, je nachdem, ob Unicode definiert ist oder nicht?<br />
Was passiert eigentlich, wenn ich wstring verwende, ohne dass Unicode definiert ist? Wäre ich damit nicht auf jeden Fall auf der sicheren Seite, auch was mein ursprüngliches Problem (LPCTSTR) betrifft?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169311</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169311</guid><dc:creator><![CDATA[Turk Turkleton]]></dc:creator><pubDate>Sun, 05 Nov 2006 23:26:40 GMT</pubDate></item><item><title><![CDATA[Reply to Kompatibilität von LPCTSTR und std::string on Mon, 06 Nov 2006 00:00:25 GMT]]></title><description><![CDATA[<p>Also std::string und std::wstring gibts immer, unabhängig davon ob TCHAR nu char oder wchar_t ist. Bloss verwendet std::string immer char und std::wstring immer wchar_t. Du kannst aber z.B. immer den Output von std::string::c_str an MessageBoxA übergeben und den Output von std::wstring::c_str an MessageBoxW übergeben.</p>
<p>Es kommt halt sehr darauf an was du machen willst. Manchmal ist es die einfachste und beste Lösung einfach auf std::string zu verzichten und nur std::wstring zu verwenden, dann wieder gibt es Fälle wo es besser ist einfach beides zu implementieren, also eine Funktion die std::string frisst und eine die std::wstring frisst. Und manchmal kann es auch Sinnvoll sein eben TCHAR zu verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169316</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169316</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 06 Nov 2006 00:00:25 GMT</pubDate></item><item><title><![CDATA[Reply to Kompatibilität von LPCTSTR und std::string on Mon, 06 Nov 2006 00:20:08 GMT]]></title><description><![CDATA[<p>Wo könnte es denn einen Nachteil geben, wenn ich immer wstring benutze?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169318</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169318</guid><dc:creator><![CDATA[Turk Turkleton]]></dc:creator><pubDate>Mon, 06 Nov 2006 00:20:08 GMT</pubDate></item><item><title><![CDATA[Reply to Kompatibilität von LPCTSTR und std::string on Mon, 06 Nov 2006 01:34:56 GMT]]></title><description><![CDATA[<p>Wenn du z.B. Libraries/APIs verwenden willst die bloss ANSI Interfaces haben (z.B. für Filenamen). Oder wenn du willst dass das Programm noch auf Win9x/ME läuft.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169323</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169323</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 06 Nov 2006 01:34:56 GMT</pubDate></item><item><title><![CDATA[Reply to Kompatibilität von LPCTSTR und std::string on Mon, 06 Nov 2006 10:06:01 GMT]]></title><description><![CDATA[<p>Wieso sollte es ein Problem mit Windows 95/98/ME geben, wenn ich wstring verwende? Selbst dieses alte Visual Studio 6.0 kannte schon den wstring, obwohl es für Windows 98 augelegt war (&quot;Designed for Windows 98&quot;).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169458</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169458</guid><dc:creator><![CDATA[Turk Turkleton]]></dc:creator><pubDate>Mon, 06 Nov 2006 10:06:01 GMT</pubDate></item><item><title><![CDATA[Reply to Kompatibilität von LPCTSTR und std::string on Mon, 06 Nov 2006 10:30:48 GMT]]></title><description><![CDATA[<p>Klar kannst du auch wstring verwenden, aber dann mußt du darauf achten, IMMER die wchar_t-Version einer API-Funktion aufzurufen (und inwieweit ältere Systeme eine wchar_t-Version deiner Funktionen unterstützen, ist die andere Frage).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169471</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169471</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 06 Nov 2006 10:30:48 GMT</pubDate></item><item><title><![CDATA[Reply to Kompatibilität von LPCTSTR und std::string on Mon, 06 Nov 2006 10:31:18 GMT]]></title><description><![CDATA[<p>Aha, ja, natürlich &quot;geht&quot; std::wstring mit Windows 95/98/ME, aber die ganzen Unicode APIs gehen nicht. <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="😮"
    /><br />
Was willst du also mit deinen wstrings anfangen wenn du sie in keine einzige API reinstecken kannst?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169472</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169472</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 06 Nov 2006 10:31:18 GMT</pubDate></item><item><title><![CDATA[Reply to Kompatibilität von LPCTSTR und std::string on Mon, 06 Nov 2006 10:52:36 GMT]]></title><description><![CDATA[<p>O.k., ich glaube, ich hab's jetzt verstanden. Danke an alle.<br />
Noch eine Frage: Wie kann man diesen wstring eigentlich ausgeben? cout funktioniert damit nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169490</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169490</guid><dc:creator><![CDATA[Turk Turkleton]]></dc:creator><pubDate>Mon, 06 Nov 2006 10:52:36 GMT</pubDate></item><item><title><![CDATA[Reply to Kompatibilität von LPCTSTR und std::string on Mon, 06 Nov 2006 10:53:46 GMT]]></title><description><![CDATA[<p>Ach ja, und noch etwas: Was hat es eigentlich mit dieser Funktion tmain oder _tmain auf sich?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169493</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169493</guid><dc:creator><![CDATA[Turk Turkleton]]></dc:creator><pubDate>Mon, 06 Nov 2006 10:53:46 GMT</pubDate></item><item><title><![CDATA[Reply to Kompatibilität von LPCTSTR und std::string on Mon, 06 Nov 2006 14:01:11 GMT]]></title><description><![CDATA[<p>Turk Turkleton schrieb:</p>
<blockquote>
<p>Noch eine Frage: Wie kann man diesen wstring eigentlich ausgeben? cout funktioniert damit nicht.</p>
</blockquote>
<p>Es gibt auch wchar_t Versionen der IO-Streams - die fangen bezeichnenderweise mit &quot;w&quot; an, wie z.B. &quot;wcout&quot; (das brauchst du).</p>
<blockquote>
<p>Ach ja, und noch etwas: Was hat es eigentlich mit dieser Funktion tmain oder _tmain auf sich?</p>
</blockquote>
<p>Das kann je nach Compiler-Optionen als main() (für char-Daten) oder wmain() (für wchar_t) erstellt werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169666</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169666</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 06 Nov 2006 14:01:11 GMT</pubDate></item><item><title><![CDATA[Reply to Kompatibilität von LPCTSTR und std::string on Mon, 06 Nov 2006 14:34:10 GMT]]></title><description><![CDATA[<blockquote>
<p>Es gibt auch wchar_t Versionen der IO-Streams - die fangen bezeichnenderweise mit &quot;w&quot; an, wie z.B. &quot;wcout&quot; (das brauchst du).</p>
</blockquote>
<p>Der Compiler kennt aber kein wcout, zumindest nicht in der iostream.</p>
<blockquote>
<p>Das kann je nach Compiler-Optionen als main() (für char-Daten) oder wmain() (für wchar_t) erstellt werden.</p>
</blockquote>
<p>Das versteh ich mal wieder nicht. Was hat denn der Name der main mit char- oder wchat_t-Daten zu tun?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169697</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169697</guid><dc:creator><![CDATA[Turk Turkleton]]></dc:creator><pubDate>Mon, 06 Nov 2006 14:34:10 GMT</pubDate></item><item><title><![CDATA[Reply to Kompatibilität von LPCTSTR und std::string on Mon, 06 Nov 2006 16:02:05 GMT]]></title><description><![CDATA[<p>Turk Turkleton schrieb:</p>
<blockquote>
<p>Wieso haben die das nicht gleich von vornherein in den Standard-String reingenommen?</p>
</blockquote>
<p>Weil es in C++ keine explizite Differenzierung zwischen ASCII und UNICODE gibt.</p>
<p>Turk Turkleton schrieb:</p>
<blockquote>
<p>Der Compiler kennt aber kein wcout, zumindest nicht in der iostream.</p>
</blockquote>
<p>Doch eigentlich schon (ist im std-Namensbereich definiert):</p>
<pre><code class="language-cpp">// In der Datei IOSTREAM:
extern _CRTIMP wostream wcout, wcerr, wclog;
</code></pre>
<p>Turk Turkleton schrieb:</p>
<blockquote>
<p>Das versteh ich mal wieder nicht. Was hat denn der Name der main mit char- oder wchat_t-Daten zu tun?</p>
</blockquote>
<p>Guck Dir mal die erweiterte Version der main() mit Parametern an... . Dann siehst du warum man zwischen char und wchar_t unterscheidet.</p>
<p><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="➡"
    /> <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccelng/htm/basic_19.asp" rel="nofollow">main(...)/wmain(...) (MSDN, C++ Reference)</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169792</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Mon, 06 Nov 2006 16:02:05 GMT</pubDate></item><item><title><![CDATA[Reply to Kompatibilität von LPCTSTR und std::string on Tue, 07 Nov 2006 13:02:43 GMT]]></title><description><![CDATA[<p>Komisch: Unter Linux mit dem GCC geht's. Unter Windows mit dem MinGW geht's nicht ('wcout' undeclared (first use this function)).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1170432</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1170432</guid><dc:creator><![CDATA[Turk Turkleton]]></dc:creator><pubDate>Tue, 07 Nov 2006 13:02:43 GMT</pubDate></item></channel></rss>