<?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 LB_SETITEMDATA]]></title><description><![CDATA[<p>Hallo Leute,<br />
ich hab da ein kleines Problemchen mit einer Funktion, dessen Rückgabewert vom<br />
Typ String ist und der Nachricht LB_SETITEMDATA, die ich an eine Listbox in<br />
meinem Fenster sende:</p>
<p>Beispiel: Meine Funktion</p>
<pre><code class="language-cpp">string sFunktion
{
	[...]
	return &quot;halloduda&quot;;
}
</code></pre>
<p>Nun füge ich einem Element in meiner Listbox per</p>
<pre><code class="language-cpp">SendMessage(hListFiles, LB_SETITEMDATA, iItem, (LPARAM) sFunktion().c_str())
</code></pre>
<p>den Rückgabewert der Funktion &quot;sFunktion&quot;, also &quot;halloduda&quot; als const char * hinzu - doch wenn ich später im Programm den Inhalt des Elements in meiner Listbox mit</p>
<pre><code class="language-cpp">const char *pIn;
	pIn = (const char*)SendMessage(hListFiles, LB_GETITEMDATA, SendMessage(hListFiles, LB_GETCURSEL, 0, 0), 0);

	MessageBox(0, pIn, 0, 0);
</code></pre>
<p>abfrage, erscheint nur Müll in meiner MessageBox.</p>
<p>Es funktioniert alles, wenn ich &quot;halloduda&quot; direkt an das Element sende, also</p>
<pre><code class="language-cpp">const char *pInhalt = &quot;halloduda&quot;;
SendMessage(hListFiles, LB_SETITEMDATA, iItem, (LPARAM) pInhalt;
</code></pre>
<p>Hoffe, ihr könnt mir helfen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /><br />
-crazychicken</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/104728/problem-mit-lb_setitemdata</link><generator>RSS for Node</generator><lastBuildDate>Sat, 02 May 2026 03:16:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/104728.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 22 Mar 2005 18:06:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit LB_SETITEMDATA on Tue, 22 Mar 2005 18:06:53 GMT]]></title><description><![CDATA[<p>Hallo Leute,<br />
ich hab da ein kleines Problemchen mit einer Funktion, dessen Rückgabewert vom<br />
Typ String ist und der Nachricht LB_SETITEMDATA, die ich an eine Listbox in<br />
meinem Fenster sende:</p>
<p>Beispiel: Meine Funktion</p>
<pre><code class="language-cpp">string sFunktion
{
	[...]
	return &quot;halloduda&quot;;
}
</code></pre>
<p>Nun füge ich einem Element in meiner Listbox per</p>
<pre><code class="language-cpp">SendMessage(hListFiles, LB_SETITEMDATA, iItem, (LPARAM) sFunktion().c_str())
</code></pre>
<p>den Rückgabewert der Funktion &quot;sFunktion&quot;, also &quot;halloduda&quot; als const char * hinzu - doch wenn ich später im Programm den Inhalt des Elements in meiner Listbox mit</p>
<pre><code class="language-cpp">const char *pIn;
	pIn = (const char*)SendMessage(hListFiles, LB_GETITEMDATA, SendMessage(hListFiles, LB_GETCURSEL, 0, 0), 0);

	MessageBox(0, pIn, 0, 0);
</code></pre>
<p>abfrage, erscheint nur Müll in meiner MessageBox.</p>
<p>Es funktioniert alles, wenn ich &quot;halloduda&quot; direkt an das Element sende, also</p>
<pre><code class="language-cpp">const char *pInhalt = &quot;halloduda&quot;;
SendMessage(hListFiles, LB_SETITEMDATA, iItem, (LPARAM) pInhalt;
</code></pre>
<p>Hoffe, ihr könnt mir helfen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /><br />
-crazychicken</p>
]]></description><link>https://www.c-plusplus.net/forum/post/750581</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/750581</guid><dc:creator><![CDATA[crazychicken]]></dc:creator><pubDate>Tue, 22 Mar 2005 18:06:53 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit LB_SETITEMDATA on Tue, 22 Mar 2005 18:25:39 GMT]]></title><description><![CDATA[<p>Ich nehme mal an, dass der Pointer, den sFunktion().c_str() zurückliefert eben nur begrenzt gültig ist. Das würde bedeuten, dass du die Daten aus dem String kopieren müsstest. Oder warum nicht direkt einen Pointer auf den String (also nicht das char-Array) übergeben und dann erst nach LB_GETITEMDATA c_str() anwenden? <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/750602</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/750602</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Tue, 22 Mar 2005 18:25:39 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit LB_SETITEMDATA on Tue, 22 Mar 2005 21:46:39 GMT]]></title><description><![CDATA[<p>Ähm ich habe jetzt mal versucht, einen Pointer auf den String mit</p>
<pre><code class="language-cpp">SendMessage(hListFiles, LB_SETITEMDATA, iItem, (LPARAM) (string*)&amp;sFunktion())
</code></pre>
<p>und</p>
<pre><code class="language-cpp">string *sIn = (string*)SendMessage(hListFiles, LB_GETITEMDATA, SendMessage(hListFiles, LB_GETCURSEL, 0, 0), 0);
MessageBox(0, (*sIn).c_str(), 0, 0);
</code></pre>
<p>zu übergeben - doch es wird leider wieder nur &quot;Müll&quot; ausgegeben oder das Programm stürzt ab...<br />
(Vielleicht liegt's auch daran, dass ich bisher wenig mit Zeigern gearbeitet habe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> )</p>
<p>thx<br />
-crazychicken</p>
]]></description><link>https://www.c-plusplus.net/forum/post/750723</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/750723</guid><dc:creator><![CDATA[crazychicken]]></dc:creator><pubDate>Tue, 22 Mar 2005 21:46:39 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit LB_SETITEMDATA on Tue, 22 Mar 2005 22:41:02 GMT]]></title><description><![CDATA[<p>Das liegt wohl einfach daran, dass der String eben nach der nächsten } nicht mehr gültig ist - du musst ihn also irgendwoe zwischenspeichern, wo du von beiden Stellen aus zugreifen kannst (sprich: in einem übergeordneten Blogg oder ggf. global, evtl. auch static)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/750779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/750779</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Tue, 22 Mar 2005 22:41:02 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit LB_SETITEMDATA on Wed, 23 Mar 2005 09:56:38 GMT]]></title><description><![CDATA[<p>Ok, habe das Problem jetzt einfach mit einem statischen String gelöst:</p>
<pre><code class="language-cpp">static string ssFunktion = sFunktion();
SendMessage(hListFiles, LB_SETITEMDATA, iItem, (LPARAM)(string*)&amp;ssFunktion);
</code></pre>
<p>-hauptsache, ich komme erstmal weiter mit meinem Programm..</p>
<p>Vielen Dank!<br />
-crazychicken</p>
]]></description><link>https://www.c-plusplus.net/forum/post/750937</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/750937</guid><dc:creator><![CDATA[crazychicken]]></dc:creator><pubDate>Wed, 23 Mar 2005 09:56:38 GMT</pubDate></item></channel></rss>