<?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[*gelöst* Unicode: CString zu const char* casten]]></title><description><![CDATA[<p>Hallo<br />
Mein derzeitiges Problem baut auf dem Problem aus diesem Thread auf:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-185850.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-185850.html</a></p>
<p>Dort konnte ich das Problem in den Griff bekommen, leider tat sich aber dadurch ein neues Problem auf. Seit dem ich mit /D &quot;UNICODE&quot; die CFileDialog-Funktion compiliere tritt dieses Problem auf.</p>
<p>Aus der CFileDialog Funktion gebe ich den Pfad einer Datei als CString zurück<br />
und bearbeite ihn in meiner &quot;Controller-Funktion&quot; so das der Pfad als const char* an eine &quot;TinyXML&quot; Funktion übergeben wird. &quot;TinyXML&quot; erwartet auch einen const char* .</p>
<p>Der Code in meiner &quot;Controller-Funktion&quot; sieht so aus.</p>
<pre><code class="language-cpp">CString s_pathName;
const char* pathName;

s_pathName = OpenEdlDialog();
pathName = (const char*)LPCTSTR(s_pathName);  // hat bisher funktioniert
ReadEdlFile(pathName);
</code></pre>
<p>beim Code in der Dialog Funktion , &quot;returne&quot; ich den CString den die Standard Funktion CFileDialog::GetPathName() liefert.</p>
<p>Wenn ich mir jetzt den Wert für &quot;pathName&quot; ausgeben lasse, erhalte ich nur ein &quot;V&quot;.</p>
<p>Es gab zwar schon einige Beiträge zu CString und const char*, aber keiner funktioniert. Wäre sehr dankbar wenn mir jemand auf die Sprünge helfen könnte.<br />
Vielen Dank im Voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/185938/gelöst-unicode-cstring-zu-const-char-casten</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Apr 2026 15:28:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/185938.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 03 Jul 2007 10:31:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to *gelöst* Unicode: CString zu const char* casten on Tue, 03 Jul 2007 11:51:05 GMT]]></title><description><![CDATA[<p>Hallo<br />
Mein derzeitiges Problem baut auf dem Problem aus diesem Thread auf:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-185850.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-185850.html</a></p>
<p>Dort konnte ich das Problem in den Griff bekommen, leider tat sich aber dadurch ein neues Problem auf. Seit dem ich mit /D &quot;UNICODE&quot; die CFileDialog-Funktion compiliere tritt dieses Problem auf.</p>
<p>Aus der CFileDialog Funktion gebe ich den Pfad einer Datei als CString zurück<br />
und bearbeite ihn in meiner &quot;Controller-Funktion&quot; so das der Pfad als const char* an eine &quot;TinyXML&quot; Funktion übergeben wird. &quot;TinyXML&quot; erwartet auch einen const char* .</p>
<p>Der Code in meiner &quot;Controller-Funktion&quot; sieht so aus.</p>
<pre><code class="language-cpp">CString s_pathName;
const char* pathName;

s_pathName = OpenEdlDialog();
pathName = (const char*)LPCTSTR(s_pathName);  // hat bisher funktioniert
ReadEdlFile(pathName);
</code></pre>
<p>beim Code in der Dialog Funktion , &quot;returne&quot; ich den CString den die Standard Funktion CFileDialog::GetPathName() liefert.</p>
<p>Wenn ich mir jetzt den Wert für &quot;pathName&quot; ausgeben lasse, erhalte ich nur ein &quot;V&quot;.</p>
<p>Es gab zwar schon einige Beiträge zu CString und const char*, aber keiner funktioniert. Wäre sehr dankbar wenn mir jemand auf die Sprünge helfen könnte.<br />
Vielen Dank im Voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1317390</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317390</guid><dc:creator><![CDATA[MRTcharlie]]></dc:creator><pubDate>Tue, 03 Jul 2007 11:51:05 GMT</pubDate></item><item><title><![CDATA[Reply to *gelöst* Unicode: CString zu const char* casten on Tue, 03 Jul 2007 10:42:34 GMT]]></title><description><![CDATA[<p>Im UNICODE-modus verwaltet der CString keine char's mehr, sondern wchar_t's. Die kannst du nicht durch einen einfachen Cast ineinander umwandeln. Schau doch mal in der MSDN zum Thema &quot;String Conversion Macros&quot; (besonders T2A() könnte hier helfen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1317397</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317397</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 03 Jul 2007 10:42:34 GMT</pubDate></item><item><title><![CDATA[Reply to *gelöst* Unicode: CString zu const char* casten on Tue, 03 Jul 2007 10:49:04 GMT]]></title><description><![CDATA[<p>nur nochmal zum verständnis, ich muss den CString in ein wchar_t umwandeln und dann von einem wchar_t in einen char* bzw. const char*?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1317401</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317401</guid><dc:creator><![CDATA[MRTcharlie]]></dc:creator><pubDate>Tue, 03 Jul 2007 10:49:04 GMT</pubDate></item><item><title><![CDATA[Reply to *gelöst* Unicode: CString zu const char* casten on Fri, 25 Oct 2013 09:10:02 GMT]]></title><description><![CDATA[<p>Dein Probelm ist, dass ein Unicode String &quot;VER&quot; so aussieht: 'V',0,'E',0,'R',0,0, da Unikode Zeichen 2 Byte belegen und das Ende mit 2 Nullen markiert ist.</p>
<p>Wenn du dies nun in ain Array von char castest ist der String natürlich bei der ersten null zuende.</p>
<p>Einfach die Nullen von Hand in ner for Schleife rauslöschen.</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1317403</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317403</guid><dc:creator><![CDATA[maikhaenig]]></dc:creator><pubDate>Fri, 25 Oct 2013 09:10:02 GMT</pubDate></item><item><title><![CDATA[Reply to *gelöst* Unicode: CString zu const char* casten on Tue, 03 Jul 2007 10:50:48 GMT]]></title><description><![CDATA[<p>Nein, das Umwandeln in ein wchar_t-Array kann der CString schon alleine - du mußt nur dieses Array transformieren in ein char-Array.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1317404</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317404</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 03 Jul 2007 10:50:48 GMT</pubDate></item><item><title><![CDATA[Reply to *gelöst* Unicode: CString zu const char* casten on Tue, 03 Jul 2007 10:55:47 GMT]]></title><description><![CDATA[<p>Für die entsprechenden Konvertierungen gibt es einen Satz ATL Makros:</p>
<pre><code class="language-cpp">USES_CONVERSION;
CString s_pathName;
const char* pathName;
s_pathName = OpenEdlDialog();
pathName = T2A(s_pathName);  
ReadEdlFile(pathName);
</code></pre>
<p>Oder die neuen Makros (dann aber bitte inline):</p>
<pre><code class="language-cpp">CString s_pathName;
const char* pathName;
s_pathName = OpenEdlDialog();
ReadEdlFile(CT2A(pathName));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1317408</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317408</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Tue, 03 Jul 2007 10:55:47 GMT</pubDate></item><item><title><![CDATA[Reply to *gelöst* Unicode: CString zu const char* casten on Tue, 03 Jul 2007 11:50:44 GMT]]></title><description><![CDATA[<p>Vielen Dank. Hat sowohl mit der for-Schleife, als auch mit den Makros funktioniert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1317446</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1317446</guid><dc:creator><![CDATA[MRTcharlie]]></dc:creator><pubDate>Tue, 03 Jul 2007 11:50:44 GMT</pubDate></item></channel></rss>