<?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[wchar_t*  in einen anderen wchar_t* kopieren]]></title><description><![CDATA[<p>Hallo ,</p>
<pre><code class="language-cpp">wchar_t*     swNach ;   
     std::wstring sNach; 

     USES_CONVERSION; 
     swNach = A2W( sVon.c_str());    //char* in wchar*
</code></pre>
<p>Habe nachgelesen, der swNach zeigt jetzt auf einen Puffer , der mit<br />
dem Makro USES_CONVERSION erzeugt worden ist.</p>
<p>Wenn die nächste Anweisung kommt , dann wird der Puffer überschrieben.<br />
Deswegen muss ich das Ergebnis ( den wchar* ) kopieren. Etwa mit strcpy<br />
Aber strcpy kopiert ja den char*.</p>
<p>Habe gedacht , es gibt wstrcpy. Bekomme aber einen Fehler.</p>
<p>Weiß jemand wie man einen wchar_t* kopiert ?</p>
<p>Mfg , Elke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/147575/wchar_t-in-einen-anderen-wchar_t-kopieren</link><generator>RSS for Node</generator><lastBuildDate>Fri, 04 Sep 2026 07:36:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/147575.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 18 May 2006 10:04:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to wchar_t*  in einen anderen wchar_t* kopieren on Thu, 18 May 2006 10:04:27 GMT]]></title><description><![CDATA[<p>Hallo ,</p>
<pre><code class="language-cpp">wchar_t*     swNach ;   
     std::wstring sNach; 

     USES_CONVERSION; 
     swNach = A2W( sVon.c_str());    //char* in wchar*
</code></pre>
<p>Habe nachgelesen, der swNach zeigt jetzt auf einen Puffer , der mit<br />
dem Makro USES_CONVERSION erzeugt worden ist.</p>
<p>Wenn die nächste Anweisung kommt , dann wird der Puffer überschrieben.<br />
Deswegen muss ich das Ergebnis ( den wchar* ) kopieren. Etwa mit strcpy<br />
Aber strcpy kopiert ja den char*.</p>
<p>Habe gedacht , es gibt wstrcpy. Bekomme aber einen Fehler.</p>
<p>Weiß jemand wie man einen wchar_t* kopiert ?</p>
<p>Mfg , Elke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1060010</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1060010</guid><dc:creator><![CDATA[Elke100]]></dc:creator><pubDate>Thu, 18 May 2006 10:04:27 GMT</pubDate></item><item><title><![CDATA[Reply to wchar_t*  in einen anderen wchar_t* kopieren on Thu, 18 May 2006 10:13:11 GMT]]></title><description><![CDATA[<p>Erstens: basic_string&lt;&gt;'s verwalten ihren eigenen Speicher, das heißt mit einem &quot;sNach = swNach;&quot; (oder sogar &quot;sNach = A2W(sVon.c_str());&quot;) kopierst du die Daten in einen &quot;sicheren&quot; Speicherbereich.</p>
<p>Zweitens: Afaik bereitet USES_CONVERSIONS nur die Speicherverwaltung vor - jeder Aufruf von A2W() und Kollegen greift dann ein eigenes Stück vom Stack ab.</p>
<p>Drittens: Die wchar_t-Version von strcpy() heißt wcscpy()</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1060013</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1060013</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 18 May 2006 10:13:11 GMT</pubDate></item><item><title><![CDATA[Reply to wchar_t*  in einen anderen wchar_t* kopieren on Thu, 18 May 2006 10:56:52 GMT]]></title><description><![CDATA[<p>Ehm, also stringA = stringB kopiert nichts! Die string Klasse von C++ macht ein Copy-on-Write, d.h. erst wenn sich ein String-Inhalt ändert, wird eine Kopie angelegt. Solange wird auf den gleichen String-Inhalt von zwei Strings verwiesen.</p>
<p>Also erst bei einem .c_str() dürfte es ein Kopieren geben... aber das muß man ausprobieren. Weiß ich jetz nicht genau.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1060036</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1060036</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Thu, 18 May 2006 10:56:52 GMT</pubDate></item><item><title><![CDATA[Reply to wchar_t*  in einen anderen wchar_t* kopieren on Thu, 18 May 2006 11:14:21 GMT]]></title><description><![CDATA[<p>Hallo CStoll,</p>
<p>Vielen Dank .<br />
Habe aber noch eine Frage , vielleicht kannst du mir weiterhelfen.</p>
<pre><code class="language-cpp">wchar_t*     swNach ;   
     std::wstring sNach; 

     USES_CONVERSION; 
     swNach = A2W( sVon.c_str());
</code></pre>
<p>Das Ergebnis swNach ist ein wchar_t*. Die Konvertierung hat geklappt ,<br />
der Wert steht auch drin.</p>
<p>Diesen wchar* möchte ich als wstring ausgeben.<br />
Und mache es so:</p>
<p>std::wstring p_sNach = std::wstring( swNach );</p>
<p>Leider hat p_sNach dann keinen Wert.</p>
<p>Komisch, weil der wstring so einen Konstruktor hat.</p>
<p>Mfg , Elke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1060052</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1060052</guid><dc:creator><![CDATA[Elke100]]></dc:creator><pubDate>Thu, 18 May 2006 11:14:21 GMT</pubDate></item><item><title><![CDATA[Reply to wchar_t*  in einen anderen wchar_t* kopieren on Thu, 18 May 2006 17:59:47 GMT]]></title><description><![CDATA[<p>Artchi schrieb:</p>
<blockquote>
<p>Ehm, also stringA = stringB kopiert nichts! Die string Klasse von C++ macht ein Copy-on-Write, d.h. erst wenn sich ein String-Inhalt ändert, wird eine Kopie angelegt.</p>
</blockquote>
<p>Meines Wissens schreibt der Standard aber keine Copy Semantik vor, dh da kann jede Implementierung ihr eigenes Süppchen kochen.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9245">@Elke</a><br />
Also</p>
<pre><code class="language-cpp">std::wstring p_sNach = swNach;
</code></pre>
<p>sollte problemlos funktionieren, falls swNach ein C-String ist (oh mann, mir rollen sich die Fussnägel hoch, wenn ich diese UN Kryptik sehe <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="🙂"
    /> ). Was steht denn in swNach?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1060386</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1060386</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Thu, 18 May 2006 17:59:47 GMT</pubDate></item></channel></rss>