<?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 _MBCS und UNICODE und _T()]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich hatte in meinen Projekt Einstellungen das _MBCS beim C++ Präprozessor stehen und habe fast überall _T() Makro verwendet.</p>
<p>Jetzt habe ich aus der Kompatibilitätsgründen zur einer Lib auch UNICODE (nicht _UNICODE) Makro hinzufügen müssen.</p>
<p>Ich habe folgenden Code:</p>
<pre><code class="language-cpp">TCHAR *pszCause;
pszCause = new TCHAR[cc_ExcBuffSize];
... // pszCause bekommt ihren Wert ..
// m_ErrorMessage ist CString
m_ErrorMessage = _T(pszCause); // &lt;-- Hier ist ERROR
</code></pre>
<p>Jetzt wird aber mein _T() Makro ignoriert<br />
MFC Definition:</p>
<pre><code class="language-cpp">#define _T(x)       __T(x)
#define __T(x)      L ## x
</code></pre>
<p>Und ich habe anstelle von pszCause variable eine LpszCause Variable stehen:<br />
&quot;error C2065: 'LpszCause' : nichtdeklarierter Bezeichner&quot;</p>
<p>Hat jemand eine Idee?<br />
Und kann mir jemand den Unterschied zwischen MultiByte und WideChar erklären?</p>
<p>Ich habe auch MFC's :&quot;Using TCHAR.H Data Types with _MBCS Code.&quot; durchgelesen, eine Antwort auf mein Problem habe ich aber da nicht gefunden <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="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/78169/problem-mit-_mbcs-und-unicode-und-_t</link><generator>RSS for Node</generator><lastBuildDate>Wed, 22 Apr 2026 01:35:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/78169.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 28 Jun 2004 17:12:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit _MBCS und UNICODE und _T() on Mon, 28 Jun 2004 17:15:28 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich hatte in meinen Projekt Einstellungen das _MBCS beim C++ Präprozessor stehen und habe fast überall _T() Makro verwendet.</p>
<p>Jetzt habe ich aus der Kompatibilitätsgründen zur einer Lib auch UNICODE (nicht _UNICODE) Makro hinzufügen müssen.</p>
<p>Ich habe folgenden Code:</p>
<pre><code class="language-cpp">TCHAR *pszCause;
pszCause = new TCHAR[cc_ExcBuffSize];
... // pszCause bekommt ihren Wert ..
// m_ErrorMessage ist CString
m_ErrorMessage = _T(pszCause); // &lt;-- Hier ist ERROR
</code></pre>
<p>Jetzt wird aber mein _T() Makro ignoriert<br />
MFC Definition:</p>
<pre><code class="language-cpp">#define _T(x)       __T(x)
#define __T(x)      L ## x
</code></pre>
<p>Und ich habe anstelle von pszCause variable eine LpszCause Variable stehen:<br />
&quot;error C2065: 'LpszCause' : nichtdeklarierter Bezeichner&quot;</p>
<p>Hat jemand eine Idee?<br />
Und kann mir jemand den Unterschied zwischen MultiByte und WideChar erklären?</p>
<p>Ich habe auch MFC's :&quot;Using TCHAR.H Data Types with _MBCS Code.&quot; durchgelesen, eine Antwort auf mein Problem habe ich aber da nicht gefunden <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="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/549466</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/549466</guid><dc:creator><![CDATA[lazydot]]></dc:creator><pubDate>Mon, 28 Jun 2004 17:15:28 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit _MBCS und UNICODE und _T() on Tue, 29 Jun 2004 23:55:09 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>du kannst keine Variablen mit dem T-Makro behandeln, es funktioniert nur mit Zeichenketten-Literalen. Deshalb kann dein Code so nicht funktionieren, vielmehr stellt das WinAPI Funktionen bereit, um Unicode (wide chars) in ANSI zu wandeln. Die Funktionen MultiByteToWideChar bzw. WideCharToMultiByte nehmen jeweils einen wide-char-Buffer und einen char-Buffer als Argument an:</p>
<p><a href="http://msdn.microsoft.com/library/en-us/intl/unicode_2bj9.asp" rel="nofollow">http://msdn.microsoft.com/library/en-us/intl/unicode_2bj9.asp</a></p>
<p><a href="http://msdn.microsoft.com/library/en-us/intl/unicode_17si.asp" rel="nofollow">http://msdn.microsoft.com/library/en-us/intl/unicode_17si.asp</a></p>
<p>Zum Thema MultiByte/WideChar:</p>
<p>ein MultiByte-Zeichensatz besteht aus Zeichen, die ein Byte und/oder zwei Byte groß sein können (darunter befinden sich also Single-byte Character Sets als auch Double-byte Character Sets (DBCS)), eine Widechar-Zeichenkette besteht aus Zeichen, die alle zwei Byte groß sind (und UNICODE ist ein solcher WideChar-Zeichensatz, und der wird unter NT-basierten Systemen verwendet).</p>
<p>Weiteres dazu gibt es hier</p>
<p><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intl/unicode_6bqr.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intl/unicode_6bqr.asp</a></p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/550089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/550089</guid><dc:creator><![CDATA[Probe-Nutzer]]></dc:creator><pubDate>Tue, 29 Jun 2004 23:55:09 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit _MBCS und UNICODE und _T() on Thu, 01 Jul 2004 12:52:45 GMT]]></title><description><![CDATA[<p>Probe-Nutzer schrieb:</p>
<blockquote>
<p>du kannst keine Variablen mit dem T-Makro behandeln...</p>
</blockquote>
<p>Das habe ich schon selbst gemerkt. Hat nur bisschen Zeit gekostet..<br />
Ich dachte nur das _T() nicht nur &quot;..&quot; konvertieren würde, sondern auch irgendwelche Routinen um Variablen zu konvertieren aufrufen wird (je nach konfiguration), da ich das vorher nie benutzt hatte.</p>
<p>Es lief ja auch, bis ich auf UNICODE umgestellt habe.<br />
War meine eigene Blödheit.. Alles andere habe ich auch schon umgestellt<br />
(_TCHAR, _ttoi anstatt atoi u.s.w.)</p>
<p>Danke für die Hilfe, ich wünschte <a href="http://c-plusplus.net" rel="nofollow">c-plusplus.net</a> wäre öffter erreichbar, dann hätte<br />
ich mir viel Zeit sparren können.</p>
<p>P.S.: _MBCS habe ich aus meiner Konfiguration entfernt (Konfikte mit _UNICODE) und müsste auch noch wWinMainCRTStartup beim Linker eingeben, dann lief alles.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/550928</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/550928</guid><dc:creator><![CDATA[lazydot]]></dc:creator><pubDate>Thu, 01 Jul 2004 12:52:45 GMT</pubDate></item></channel></rss>