<?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[ListCtrl sortieren]]></title><description><![CDATA[<p>Hi,</p>
<p>ich hab nochmal ne Frage zu ListCtrl. Ich möchte meine Liste gerne sortieren lassen, wenn man in die Kopfzeile klickt.</p>
<p>Aber irgenwie schmiert er dabei immer ab. Habe das Beispiel aus den FAQ bzw der MSDN genommen.</p>
<pre><code class="language-cpp">// in der .h

static int CALLBACK MyCompareProc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);

in der .cpp

int CALLBACK CZeitschrift::MyCompareProc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{
   // lParamSort contains a pointer to the list view control.
   CListCtrl* pListCtrl = (CListCtrl*) lParamSort;
   CString    strItem1 = pListCtrl.GetItemText(lParam1, 0); // hier schmiert er ab.
   CString    strItem2 = pListCtrl.GetItemText(lParam2, 0);

   return strcmp(strItem2, strItem1);
}
</code></pre>
<p>Ich vermute das es daran liegt, das ich für mein ListCtrl eine Member-Varialbe names m_lcProgramm angelegt habe. Aber wie muß ich das hier einbauen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Ach ja, so ruf ich SortItem auf.</p>
<pre><code class="language-cpp">void CZeitschrift::OnLvnColumnclickLprog(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMLISTVIEW pNMLV = reinterpret_cast&lt;LPNMLISTVIEW&gt;(pNMHDR);

	 SORT_BY sortBy;

  switch (pNMLV-&gt;iSubItem)
  {
    default: ASSERT(false);
      /**/
    case 0:
      sortBy = UHRZEIT;
      break;
    case 1:
      sortBy = EVENT;
      break;
    case 2:
      sortBy = STREAMER;
      break;
    case 3:
      sortBy = ON_AIR;
      break;
  }

  if (m_sortedBy == sortBy)
    m_sortedBy = static_cast&lt;SORT_BY&gt;(-sortBy);
  else
    m_sortedBy = sortBy;

	m_lcProgramm.SortItems(MyCompareProc, (LPARAM)m_sortedBy);
	*pResult = 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/73248/listctrl-sortieren</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Apr 2026 22:03:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/73248.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 07 May 2004 17:09:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ListCtrl sortieren on Fri, 07 May 2004 17:39:08 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich hab nochmal ne Frage zu ListCtrl. Ich möchte meine Liste gerne sortieren lassen, wenn man in die Kopfzeile klickt.</p>
<p>Aber irgenwie schmiert er dabei immer ab. Habe das Beispiel aus den FAQ bzw der MSDN genommen.</p>
<pre><code class="language-cpp">// in der .h

static int CALLBACK MyCompareProc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);

in der .cpp

int CALLBACK CZeitschrift::MyCompareProc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{
   // lParamSort contains a pointer to the list view control.
   CListCtrl* pListCtrl = (CListCtrl*) lParamSort;
   CString    strItem1 = pListCtrl.GetItemText(lParam1, 0); // hier schmiert er ab.
   CString    strItem2 = pListCtrl.GetItemText(lParam2, 0);

   return strcmp(strItem2, strItem1);
}
</code></pre>
<p>Ich vermute das es daran liegt, das ich für mein ListCtrl eine Member-Varialbe names m_lcProgramm angelegt habe. Aber wie muß ich das hier einbauen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Ach ja, so ruf ich SortItem auf.</p>
<pre><code class="language-cpp">void CZeitschrift::OnLvnColumnclickLprog(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMLISTVIEW pNMLV = reinterpret_cast&lt;LPNMLISTVIEW&gt;(pNMHDR);

	 SORT_BY sortBy;

  switch (pNMLV-&gt;iSubItem)
  {
    default: ASSERT(false);
      /**/
    case 0:
      sortBy = UHRZEIT;
      break;
    case 1:
      sortBy = EVENT;
      break;
    case 2:
      sortBy = STREAMER;
      break;
    case 3:
      sortBy = ON_AIR;
      break;
  }

  if (m_sortedBy == sortBy)
    m_sortedBy = static_cast&lt;SORT_BY&gt;(-sortBy);
  else
    m_sortedBy = sortBy;

	m_lcProgramm.SortItems(MyCompareProc, (LPARAM)m_sortedBy);
	*pResult = 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/516150</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/516150</guid><dc:creator><![CDATA[Trikor]]></dc:creator><pubDate>Fri, 07 May 2004 17:39:08 GMT</pubDate></item><item><title><![CDATA[Reply to ListCtrl sortieren on Fri, 07 May 2004 17:49:40 GMT]]></title><description><![CDATA[<p>So, ich hab rausgefunden, dass es wohl daran liegt, das in</p>
<pre><code class="language-cpp">int CALLBACK CZeitschrift::MyCompareProc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
</code></pre>
<p>die Parameter lParam1 und lParam2 mit 0 übergeben werden.<br />
lParamSort wird aber richig übergeben. Wie bekomme ich es jetzt hin, das die ersten beiden Parameter auch richtig übergeben werden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/516183</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/516183</guid><dc:creator><![CDATA[Trikor]]></dc:creator><pubDate>Fri, 07 May 2004 17:49:40 GMT</pubDate></item><item><title><![CDATA[Reply to ListCtrl sortieren on Fri, 07 May 2004 19:04:12 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>so geht das nicht, in der MSDN ist das allerdings nicht ganz leicht zu erkennen, was denn in lparam1 und lparam2 geliefert wird. Es steht z.B. hier:</p>
<p>[quoute=&quot;MSDN&quot;]<br />
The lParam1 and lParam2 parameters specify the <strong>item data</strong> for the two items being compared.<br />
[/quote]</p>
<p>es werden also die &quot;item data&quot;-Werte übergeben, anhand derer die Vergleichsfunktion ihre Arbeit erledigen kann. Du mußt also jedem Item ein &quot;Item Data&quot; zuweisen, mit der Memberfunktion SetItemData (je nach dem, was verglichen werden soll, kann ein &quot;item data&quot; auch ein Zeiger sein, der auf eine Struktur mit Werten zeigt, oder ähnliches, usw...)</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/516239</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/516239</guid><dc:creator><![CDATA[Probe-Nutzer]]></dc:creator><pubDate>Fri, 07 May 2004 19:04:12 GMT</pubDate></item><item><title><![CDATA[Reply to ListCtrl sortieren on Sat, 08 May 2004 08:40:45 GMT]]></title><description><![CDATA[<p>Seh ich das richtig, das wenn ich z.B.</p>
<pre><code class="language-cpp">strukt prog
{
    CString Uhrzeit;
    CString Event;
    CString Streamer;
    CString Event;
}

...

prog heute;
heute[0].Uhrzeit = &quot;20:15&quot;;
heute[1].Uhrzeit = &quot;19:25&quot;;
</code></pre>
<p>habe, ich dann</p>
<pre><code class="language-cpp">m_lcProgramm.SortItems(MyCompareProc, (LPARAM)heute.Uhrzeit);
</code></pre>
<p>hier die Struktur angeben muß, die sortiert werden soll?</p>
<p>So richtig habe ich das noch nicht verstanden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/516449</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/516449</guid><dc:creator><![CDATA[Trikor]]></dc:creator><pubDate>Sat, 08 May 2004 08:40:45 GMT</pubDate></item><item><title><![CDATA[Reply to ListCtrl sortieren on Sun, 09 May 2004 06:28:21 GMT]]></title><description><![CDATA[<p>ich sehe immer noch keinen Funktionsaufruf von SetItemData in deinem Code:</p>
<p>du mußt jedem Item, das in das ListControl eingetragen wird, beim Eintrag mit SetItemData diese Struktur &quot;zuweisen&quot;. Da SetItemData aber nur ein DWORD als zu setzendes &quot;item data&quot; bietet, kannst du die zum Item gehörenden Daten, die alle in der &quot;struct prog&quot; liegen, als Zeiger auf diese struct übergeben:</p>
<pre><code class="language-cpp">// Item 0 ist eingefügt, jetzt &quot;item data&quot; zuordnen
// Annahme: progarray ist ein Array aus prog-structs, der Index entspricht dem Item-Index
SetItem(0, (DWORD) &amp;progarray[0]);
</code></pre>
<p>und in der MyCompareProc holst du die &quot;item data&quot; in Form dieser structs wieder heraus, und kannst jetzt, wie vorgesehen, die Vergleiche durchführen:</p>
<pre><code class="language-cpp">int CALLBACK CZeitschrift::MyCompareProc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{

   int retVal = 0;
   // lParamSort contains the sort criteria passed via the second parameter of the SortItems call...
   switch((SORT_BY) lParamSort)
   {
      case UHRZEIT: retVal = ((prog*) lparam1)-&gt;Uhrzeit.Compare(((prog*) lparam2)-&gt;Uhrzeit); break;
      case EVENT: // compare event-CStrings
                    break;
      case STREAMER: // compare streamer-CStrings
                    break;
      case ON_AIR: // compare on-air CStrings
                    break;

      default: ASSERT(FALSE);
   }

   return retVal;
}
</code></pre>
<p>so in etwa sollte das aussehen.</p>
<p>mußt du natürlich anpassen, je nachdem, ob alle Typen/Konstanten in der MyCompareProc &quot;sichtbar&quot;/verfügbar sind. Die Uhrzeit kann man wohl so vergleichen, weil Compare einen lexikografischen Vergleich durchführt, und so wohl z.B. &quot;20:15&quot; vor &quot;20:30&quot; &quot;gesehen&quot; wird, deswegen habe ich das als Beispiel genommen.</p>
<p>also zusammengefaßt: An die Callback-Funktion werden während des Sortier-Prozesses in den ersten beiden Parametern lParam1 und lParam2 die mit SetItemData gesetzten Werte übergeben. Anhand des dritten Arguments lParamSort, das die Callback-Funktion empfängt (das SortItems übergeben wird, es wird hier meist das Sortier-Kriterium, quasi die Spalte, nach der sortiert werden soll, übergeben) kann dann die geeignete Vergleichsoperationen ausgeführt werden, den Rest erledigt der interne Algorithmus.</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/516866</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/516866</guid><dc:creator><![CDATA[Probe-Nutzer]]></dc:creator><pubDate>Sun, 09 May 2004 06:28:21 GMT</pubDate></item><item><title><![CDATA[Reply to ListCtrl sortieren on Thu, 13 May 2004 10:21:23 GMT]]></title><description><![CDATA[<p>So ich hab jetzt das jetzt mal ein bissel in die richtige Reihenfolge gebracht.<br />
Ich habe folgende Struktur</p>
<pre><code class="language-cpp">struct TagesProg
{
	CStringArray m_strEvent;
	CStringArray m_strTime;
	CStringArray m_strSender;
	CStringArray m_strChannel;
	CStringArray m_strOnAir;
};
</code></pre>
<p>Auf diese Stuktur habe ich einen Vector gelegt</p>
<pre><code class="language-cpp">vector&lt;TagesProg *&gt; myVectorTagesprog;
</code></pre>
<p>Dieser wird von einer Website gefüllt. Pro Event ein neuer Vector</p>
<pre><code class="language-cpp">while(j &lt; strAEvent.GetSize())
	{
		TagesProg *pTProg = new TagesProg;	
		myVectorTagesprog.push_back(pTProg);
		while( -1 != (pos = strAEvent[j].Find(';',pos)))
		{
			switch (n_Trenner)
			{
			case 0:
				pTProg-&gt;m_strTime.Add(strAEvent[j].Mid(old, pos - old));
				break;
			case 1:
				pTProg-&gt;m_strEvent.Add(strAEvent[j].Mid(old, pos - old));
				break;
			case 2:
				pTProg-&gt;m_strSender.Add(strAEvent[j].Mid(old, pos - old));
				break;
			case 3:
				pTProg-&gt;m_strChannel.Add(strAEvent[j].Mid(old, pos - old));
				break;
			case 4:
				pTProg-&gt;m_strOnAir.Add(strAEvent[j].Mid(old, pos - old));
				break;
			}
			old = ++pos;
			n_Trenner++;
		}
		j++;
		old = 0;
		pos = 0;
		n_Trenner = 0;
	}
</code></pre>
<p><strong>Und jetzt das Problem!</strong><br />
Ich kann zwar den Vector ordentlich auslesen und das CListCtrl damit füllen, aber mit dem SetItem habe ich immer noch Probleme.<br />
Im Augenblick sieht das so aus.</p>
<pre><code class="language-cpp">for(int i = 0; i &lt; myVectorTagesprog.size(); i++)
	{
		for(int j = 0; j &lt; myVectorTagesprog[i]-&gt;m_strTime.GetSize();j++)
		{
			nItem = m_lcProgramm.GetItemCount();
			nItem = m_lcProgramm.InsertItem(nItem, myVectorTagesprog[i]-&gt;m_strTime.ElementAt(j),-1); 
			m_lcProgramm.SetItem(nItem, 0, (DWORD) &amp;myVectorTagesprog[i]-&gt;m_strTime,NULL, 0, LVNI_ALL, LVNI_ALL, 0);
			m_lcProgramm.SetItemText(nItem, 1, myVectorTagesprog[i]-&gt;m_strEvent.ElementAt(j));
			//m_lcProgramm.SetItem(nItem, 0, (DWORD) &amp;myVectorTagesprog[i]-&gt;m_strEvent,NULL, 0, LVNI_ALL, LVNI_ALL, 0);
			m_lcProgramm.SetItemText(nItem, 2, myVectorTagesprog[i]-&gt;m_strSender.ElementAt(j)); 
			//m_lcProgramm.SetItem(nItem, 0, (DWORD) &amp;myVectorTagesprog[i]-&gt;m_strSender,NULL, 0, LVNI_ALL, LVNI_ALL, 0);
			m_lcProgramm.SetItemText(nItem, 3, myVectorTagesprog[i]-&gt;m_strOnAir.ElementAt(j));	
			//m_lcProgramm.SetItem(nItem, 0, (DWORD) &amp;myVectorTagesprog[i]-&gt;m_strOnAir,NULL, 0, LVNI_ALL, LVNI_ALL, 0);
		}
		j = 0;
	}
}
</code></pre>
<p>Beim zweiten SetItem schmiert er dann ab. Hab auch</p>
<pre><code class="language-cpp">(DWORD) &amp;myVectorTagesprog[i]
</code></pre>
<p>statt</p>
<pre><code class="language-cpp">(DWORD) &amp;myVectorTagesprog[i]-&gt;m_strTime
</code></pre>
<p>probiert.</p>
<p>Das Programm läßt sich dann zwar compilieren, lParam1 und lParam2 werden trotzdem nicht übergeben. <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/519539</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/519539</guid><dc:creator><![CDATA[Trikor]]></dc:creator><pubDate>Thu, 13 May 2004 10:21:23 GMT</pubDate></item><item><title><![CDATA[Reply to ListCtrl sortieren on Thu, 13 May 2004 11:03:35 GMT]]></title><description><![CDATA[<p>arrgghhh...sorry, da wurde ein Data in meiner Antwort oben verschluckt, die Funktion, die du aufrufen mußt, heißt SetItemData!! In meinem Text habe ich es allerdings richtig erklärt (siehe oben), aber dann muß das Beispiel so aussehen (auf meinen alten Beitrag bezogen):</p>
<pre><code class="language-cpp">// Item 0 ist eingefügt, jetzt &quot;item data&quot; zuordnen
// Annahme: progarray ist ein Array aus prog-structs, der Index entspricht dem Item-Index
SetItemData(0, (DWORD) &amp;progarray[0]);
</code></pre>
<p>ich denke, jetzt kommst du klar, und weißt, was du zu tun hast (wenn's dann noch crasht, dann liegt es nicht mehr daran, aber dann einfach nochmal nachfragen)</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/519571</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/519571</guid><dc:creator><![CDATA[Probe-Nutzer]]></dc:creator><pubDate>Thu, 13 May 2004 11:03:35 GMT</pubDate></item><item><title><![CDATA[Reply to ListCtrl sortieren on Thu, 13 May 2004 11:39:02 GMT]]></title><description><![CDATA[<p>Versuch mal mit meiner Klasse:</p>
<pre><code class="language-cpp">class CListCtrlSort
{
	struct ListItemData
	{
		CString strText;
		DWORD_PTR dwData;
	};

	struct SortData
	{
		bool bDescending;
		bool bNumeric;
	};

public:
	CListCtrlSort(CListCtrl&amp; hWndListView, int iColumn)
	: m_hWndListView(hWndListView)
	{
		ASSERT(::IsWindow(m_hWndListView));
		ASSERT(iColumn &gt;= 0 &amp;&amp; iColumn &lt; m_hWndListView.GetHeaderCtrl()-&gt;GetItemCount());
		const int iCount = m_hWndListView.GetItemCount();

		for (int i = 0; i &lt; iCount; ++i) {
			ListItemData* pData = new ListItemData;
			pData-&gt;strText	= m_hWndListView.GetItemText(i,iColumn);
			pData-&gt;dwData	= m_hWndListView.GetItemData(i);

			m_hWndListView.SetItemData(i,reinterpret_cast&lt;DWORD_PTR&gt;(pData));
		}
	}

	bool Sort(bool bDescending = false, bool bNumeric = false)
	{
		const SortData sd = {bDescending,bNumeric};
		return m_hWndListView.SortItems(OnCompare,reinterpret_cast&lt;DWORD_PTR&gt;(&amp;sd)) != 0;
	}

	~CListCtrlSort()
	{
		ASSERT(::IsWindow(m_hWndListView));
		const int iCount = m_hWndListView.GetItemCount();

		for (int i = 0; i &lt; iCount; ++i) {
			ListItemData* pData = reinterpret_cast&lt;ListItemData*&gt;(m_hWndListView.GetItemData(i));
			ASSERT(AfxIsValidAddress(pData,sizeof(ListItemData),TRUE));

			m_hWndListView.SetItemData(i,pData-&gt;dwData);
			delete pData;
		}
	}

private:
	static int CALLBACK OnCompare(LPARAM l1, LPARAM l2, LPARAM l3)
	{
		const SortData&amp; sd = *reinterpret_cast&lt;const SortData*&gt;(l3);
		const ListItemData&amp; lid1 = *reinterpret_cast&lt;ListItemData*&gt;(l1);
		const ListItemData&amp; lid2 = *reinterpret_cast&lt;ListItemData*&gt;(l2);

		int iRet = 0;

		if (sd.bNumeric) {
			const int a = ::atoi(lid1.strText);
			const int b = ::atoi(lid2.strText);

			iRet = sd.bDescending ? a &lt; b ? -1 : 1 : a &gt; b ? -1 : 1;
		}
		else {
			iRet = lid1.strText.Compare(lid2.strText);

			if (sd.bDescending)
				iRet = iRet == -1 ? 1 : -1;
		}

		return iRet;
	}

	CListCtrl&amp; m_hWndListView;
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/519596</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/519596</guid><dc:creator><![CDATA[Shlo]]></dc:creator><pubDate>Thu, 13 May 2004 11:39:02 GMT</pubDate></item><item><title><![CDATA[Reply to ListCtrl sortieren on Thu, 13 May 2004 12:29:23 GMT]]></title><description><![CDATA[<p>Shlo schrieb:</p>
<blockquote>
<p>Versuch mal mit meiner Klasse</p>
</blockquote>
<p>Hi Shlo,</p>
<p>wie sprech ich deine Klasse denn an.<br />
Ich wollt nen HWND auf meiner CListCtrl machen und die mit einer 0 für die erste Spalte am Konstruktor übergeben.<br />
Klappt aber irgendwie nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/519643</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/519643</guid><dc:creator><![CDATA[Trikor]]></dc:creator><pubDate>Thu, 13 May 2004 12:29:23 GMT</pubDate></item><item><title><![CDATA[Reply to ListCtrl sortieren on Thu, 13 May 2004 12:41:34 GMT]]></title><description><![CDATA[<p>du musst mit Hifle des Klassen-Assistenten ein CListCtrl Object erstellen, das mit der ListView verknüpft wird. Wenn du einen Dialog hast, kannst du folgendes machen:</p>
<pre><code class="language-cpp">//z.B. bei LVN_COLUMNCLICK
LPNMLISTVIEW pNMLV = reinterpret_cast&lt;LPNMLISTVIEW&gt;(pNMHDR);

CListCtrl* pListView = static_cast&lt;CListCtrl*&gt;(GetDlgItem(IDC_LIST1));
ASSERT(pListView &amp;&amp; ::IsWindow(*pListView));

CListCtrlSort sort(*pListView,pNMLV-&gt;iSubItem);
sort.Sort(false);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/519654</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/519654</guid><dc:creator><![CDATA[Shlo]]></dc:creator><pubDate>Thu, 13 May 2004 12:41:34 GMT</pubDate></item><item><title><![CDATA[Reply to ListCtrl sortieren on Thu, 13 May 2004 12:52:10 GMT]]></title><description><![CDATA[<p>@Probe-Nutzer</p>
<p>Ja, mit SetItemData funktioniert es.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/3320">@Shlo</a></p>
<p><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="😃"
    /> <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="😃"
    /> <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="😃"
    /></p>
<p>Danke <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="👍"
    /></p>
<p>Das ist um einiges schneller!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/519663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/519663</guid><dc:creator><![CDATA[Trikor]]></dc:creator><pubDate>Thu, 13 May 2004 12:52:10 GMT</pubDate></item></channel></rss>