<?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[CString-Problem]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe ein Problem, wo ich momentan auf dem Schlauch stehe um die Lösung zu finden. Vielleicht kann mir ja jemand einen Tip geben.</p>
<p>1.) Ich habe einen: CString test;<br />
2.) Reiche diesen in eine Funktion: GiveBack(char *giveback);<br />
die per strcpy den text kopiert strcpy(giveback, &quot;text&quot;).</p>
<p>3.)Der aufruf sieht wie folgt aus: GiveBack(test.GetBuffer(test.GetLength());<br />
4.)Naturlich folgt darauf ein: test.ReleaseBuffer(test.GetLength());</p>
<p><strong>und weg ist geholte der text</strong></p>
<p>war auch nicht anders zu erwarten, aber gibt es eine Möglichkeit den CString dauerhaft von außen zu setzen <strong>edit</strong>*?</p>
<p>Vielen Dank,<br />
Gruß codeman</p>
<p><strong>edit:</strong> ohne das CString-Objekt in die Funktion hinein zu reichen.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/190390/cstring-problem</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 18:17:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/190390.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 22 Aug 2007 08:42:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CString-Problem on Wed, 22 Aug 2007 08:51:16 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe ein Problem, wo ich momentan auf dem Schlauch stehe um die Lösung zu finden. Vielleicht kann mir ja jemand einen Tip geben.</p>
<p>1.) Ich habe einen: CString test;<br />
2.) Reiche diesen in eine Funktion: GiveBack(char *giveback);<br />
die per strcpy den text kopiert strcpy(giveback, &quot;text&quot;).</p>
<p>3.)Der aufruf sieht wie folgt aus: GiveBack(test.GetBuffer(test.GetLength());<br />
4.)Naturlich folgt darauf ein: test.ReleaseBuffer(test.GetLength());</p>
<p><strong>und weg ist geholte der text</strong></p>
<p>war auch nicht anders zu erwarten, aber gibt es eine Möglichkeit den CString dauerhaft von außen zu setzen <strong>edit</strong>*?</p>
<p>Vielen Dank,<br />
Gruß codeman</p>
<p><strong>edit:</strong> ohne das CString-Objekt in die Funktion hinein zu reichen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1349592</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1349592</guid><dc:creator><![CDATA[codeman]]></dc:creator><pubDate>Wed, 22 Aug 2007 08:51:16 GMT</pubDate></item><item><title><![CDATA[Reply to CString-Problem on Wed, 22 Aug 2007 09:12:25 GMT]]></title><description><![CDATA[<p>3.)Der aufruf sieht wie folgt aus: GiveBack(test.GetBuffer(test.GetLength());</p>
<p>Das ist bei leerem test natürlich ein echter Geniestreich <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/1349616</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1349616</guid><dc:creator><![CDATA[jencas]]></dc:creator><pubDate>Wed, 22 Aug 2007 09:12:25 GMT</pubDate></item><item><title><![CDATA[Reply to CString-Problem on Wed, 22 Aug 2007 09:14:07 GMT]]></title><description><![CDATA[<p>Du solltest bei GetBuffer() nicht die aktuelle Größe angeben, sondern das, was du als Eingabelänge erwartest - sonst überschreibst du in der Funktion Speicherbereiche, die dir nicht gehören (und das kann ins Auge gehen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1349620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1349620</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 22 Aug 2007 09:14:07 GMT</pubDate></item><item><title><![CDATA[Reply to CString-Problem on Wed, 22 Aug 2007 09:30:26 GMT]]></title><description><![CDATA[<p>jencas schrieb:</p>
<blockquote>
<p>3.)Der aufruf sieht wie folgt aus:<br />
Das ist bei leerem test natürlich ein echter Geniestreich <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>
</blockquote>
<p>Ja hast recht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> ist mir auch erst jetzt aufgefallen.</p>
<p>Aber gibt es denn keine Lösung für das Problem.<br />
Sobald ich den buffer wieder release ist alles weg, aber zwischen dem getbuffer und dem releasebuffer kann man ja keine memberfunction von CString mehr aufrufen, um vielleicht den Inhalt von dem buffer noch notfalls um zu kopieren.<br />
Jegliches arbeiten mit dem buffer und einer CString memberfunction ist somit nicht möglich, aber den buffer kann man auch nicht in das eigentliche CString-Objekt übernehmen, soweit ich das verstanden habe.</p>
<p>Ufff, da hab ich doch mal lieber den alten char-vector von C als alle möglichen angenehmen feinheiten von CString das nicht abwährtskompatiebel ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1349635</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1349635</guid><dc:creator><![CDATA[codeman]]></dc:creator><pubDate>Wed, 22 Aug 2007 09:30:26 GMT</pubDate></item><item><title><![CDATA[Reply to CString-Problem on Wed, 22 Aug 2007 09:33:40 GMT]]></title><description><![CDATA[<p>Nein, nach dem ReleaseBuffer() ist der String-Inhalt nicht weg - wenn doch, ist dein Compiler im Eimer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1349640</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1349640</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 22 Aug 2007 09:33:40 GMT</pubDate></item><item><title><![CDATA[Reply to CString-Problem on Wed, 22 Aug 2007 09:41:09 GMT]]></title><description><![CDATA[<p>Ich vermute mal, dass Du auf den Datentyp des Übergabeparameters an GiveBack() keinen Einfluss hast. Dann wirst Du den Umweg über einen char[] Buffer gehen müssen, dessen Inhalt Du nach dem GiveBack() Aufruf dann in test packen musst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1349650</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1349650</guid><dc:creator><![CDATA[jencas]]></dc:creator><pubDate>Wed, 22 Aug 2007 09:41:09 GMT</pubDate></item><item><title><![CDATA[Reply to CString-Problem on Wed, 22 Aug 2007 09:52:56 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Nein, nach dem ReleaseBuffer() ist der String-Inhalt nicht weg - wenn doch, ist dein Compiler im Eimer.</p>
</blockquote>
<p>Sorry, mein fehler <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="😞"
    /> ich hatte vergessen eine größe im GetBuffer anzugeben und den release auch mit dem GetLenght() aufgerufen, also:</p>
<pre><code>test.GetBuffer(test.GetLenght());  // Genialitätsmoment
test.ReleaseBuffer(test.GetLenght()); // Lesen bringt doch was :)
</code></pre>
<p>damit war der Inhalt kurzzeitig da und dann natürlich alles wider weg. Kann nicht gehen. Naja, morgenstund und so weiter...</p>
<p>So funzt es:</p>
<pre><code>test.GetBuffer(minlength);
test.ReleaseBuffer();
</code></pre>
<p>Danke noch mal an euch <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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1349654</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1349654</guid><dc:creator><![CDATA[codeman]]></dc:creator><pubDate>Wed, 22 Aug 2007 09:52:56 GMT</pubDate></item><item><title><![CDATA[Reply to CString-Problem on Wed, 22 Aug 2007 09:58:53 GMT]]></title><description><![CDATA[<p>codeman schrieb:</p>
<blockquote>
<pre><code>test.GetBuffer(test.GetLenght());  // Genialitätsmoment
test.ReleaseBuffer(test.GetLenght()); // Lesen bringt doch was :)
</code></pre>
</blockquote>
<p>1. Statt test.GetBuffer(test.GetLength()); kann man immer test.GetBuffer(0) schreiben. In diesem Fall wird der aktuelle Speicher retruniert.<br />
2. test.ReleaseBuffer(test.GetLenght()); ist überflüssig und irreführend (ich würde soweit gehen und falsch sagen)! GetLength ist nach einem GetBuffer theoretisch undefiniert. Entweder überlässt man CString die Sacheund ruft nur test.ReleaseBuffer() auf, oder man weiß was man getan hat und setzt den richtigen wert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1349661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1349661</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 22 Aug 2007 09:58:53 GMT</pubDate></item></channel></rss>