<?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[Frage zu SMARTPTR &#x2F; Smart pointer]]></title><description><![CDATA[<p>Ich arbeite gerade an einem c++ Projekt, in dem Smart Pointers verwendet werden.</p>
<p>Mir fehlt aber viel wissen über sie und ich habe bis jetzt zu wenig info gefunden, die mir das ganze verständlich erklärt, wie ich die verwenden könnte. Ich fühle mich auch etwas zu blöd, um auch eine richtige suchanfrage zu formulieren.</p>
<p>Daher versuche ich mein Glück hier und stelle euch ein paar fragen. Seid mir bitte nicht sehr böse <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>
<p><strong>Frage nr. 1</strong><br />
Wie kann man die smartpointer analog zu normalen Zeiger verstehen?<br />
Ist folgendes grob gesehen mehr oder weniger richtig?</p>
<pre><code>SMARTPTR(classA) objA &lt;--&gt; classA *objA (bzw. classA *objA = NULL)
</code></pre>
<p>oder ist das falsch. Kann man das überhaupt vergleichen?</p>
<p><strong>Frage nr. 2</strong><br />
Wenn der Gedanke aus der 1.Frage richtig ist, wie mache ich so was mit SmartPointers?</p>
<pre><code class="language-cpp">classA objA1();
classA *objA2 = &amp;objA1();
</code></pre>
<p>bzw.</p>
<pre><code class="language-cpp">classA *objA1 = new classA();
classA *objA2 = objA1;
</code></pre>
<p>Oder die Frage umformuliert: wie komme ich auf Speicheradresse von einem Smartpointer?</p>
<p><strong>Frage nr. 3</strong><br />
Und ich vermute mal, wenn ich die Antwort auf die zweite Frage hab, hab ich auch eine Antwort auf die dritte.<br />
Es gibt im Projekt eine Typdefinition:</p>
<pre><code class="language-cpp">typedef list&lt;SMARTPTR(Ding), GCALLOC(SMARTPTR(Ding)) &gt; DingList;
</code></pre>
<p>Nun gibt es eine Listen von dem obengenannten DingList, bestehend aus SMARTPTR(Ding)<br />
Ich muss eine zweite Liste erzeugen, die Teil von Dings aus der ersten Liste enthält, aber so, dass die Dings in beiden Listen dieselbe Speicheradresse haben.</p>
<p>Ich hoffe, ich habe meine Fragen mehr oder weniger gut formuliert und hoffe sehr, eine(r) von euch kann mir helfen.</p>
<p>Schöne Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/254347/frage-zu-smartptr-smart-pointer</link><generator>RSS for Node</generator><lastBuildDate>Tue, 14 Apr 2026 09:16:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/254347.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 15 Nov 2009 12:16:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu SMARTPTR &#x2F; Smart pointer on Sun, 15 Nov 2009 12:16:05 GMT]]></title><description><![CDATA[<p>Ich arbeite gerade an einem c++ Projekt, in dem Smart Pointers verwendet werden.</p>
<p>Mir fehlt aber viel wissen über sie und ich habe bis jetzt zu wenig info gefunden, die mir das ganze verständlich erklärt, wie ich die verwenden könnte. Ich fühle mich auch etwas zu blöd, um auch eine richtige suchanfrage zu formulieren.</p>
<p>Daher versuche ich mein Glück hier und stelle euch ein paar fragen. Seid mir bitte nicht sehr böse <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>
<p><strong>Frage nr. 1</strong><br />
Wie kann man die smartpointer analog zu normalen Zeiger verstehen?<br />
Ist folgendes grob gesehen mehr oder weniger richtig?</p>
<pre><code>SMARTPTR(classA) objA &lt;--&gt; classA *objA (bzw. classA *objA = NULL)
</code></pre>
<p>oder ist das falsch. Kann man das überhaupt vergleichen?</p>
<p><strong>Frage nr. 2</strong><br />
Wenn der Gedanke aus der 1.Frage richtig ist, wie mache ich so was mit SmartPointers?</p>
<pre><code class="language-cpp">classA objA1();
classA *objA2 = &amp;objA1();
</code></pre>
<p>bzw.</p>
<pre><code class="language-cpp">classA *objA1 = new classA();
classA *objA2 = objA1;
</code></pre>
<p>Oder die Frage umformuliert: wie komme ich auf Speicheradresse von einem Smartpointer?</p>
<p><strong>Frage nr. 3</strong><br />
Und ich vermute mal, wenn ich die Antwort auf die zweite Frage hab, hab ich auch eine Antwort auf die dritte.<br />
Es gibt im Projekt eine Typdefinition:</p>
<pre><code class="language-cpp">typedef list&lt;SMARTPTR(Ding), GCALLOC(SMARTPTR(Ding)) &gt; DingList;
</code></pre>
<p>Nun gibt es eine Listen von dem obengenannten DingList, bestehend aus SMARTPTR(Ding)<br />
Ich muss eine zweite Liste erzeugen, die Teil von Dings aus der ersten Liste enthält, aber so, dass die Dings in beiden Listen dieselbe Speicheradresse haben.</p>
<p>Ich hoffe, ich habe meine Fragen mehr oder weniger gut formuliert und hoffe sehr, eine(r) von euch kann mir helfen.</p>
<p>Schöne Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1808247</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1808247</guid><dc:creator><![CDATA[ametim]]></dc:creator><pubDate>Sun, 15 Nov 2009 12:16:05 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu SMARTPTR &#x2F; Smart pointer on Sun, 15 Nov 2009 13:39:18 GMT]]></title><description><![CDATA[<blockquote>
<p>&gt; Wie kann man die smartpointer analog zu normalen Zeiger verstehen?</p>
</blockquote>
<p>Ein Smartpointer ist ein Wrapper um einen rohen Zeiger. Sie sind in Sachen Ausnahmesicherheit und Speicherverwaltung sehr wichtig, da die Ressourcen, die in ihnen gespeichert werden, meist Zeiger auf dynamisch generierte Objekte sind, die man manuell zu irgendeinem Zeitpunkt freigeben muss.<br />
Da man das schnell vergessen oder aber eine Ausnahme geworfen werden könnte, bevor man den Speicher freigibt, nutzt man die Tatsache aus, dass Objekte, die auf dem Stack angelegt werden, wie etwa ein Smartpointer, automatisch am Ende des Gültigkeitsbreieches freigegeben werden.<br />
Dank Elementfunktions-Templates und nicht expliziten generalisierten (Kopier-)Konstruktoren legen sie ein intuitives Zeiger-Verhalten zu Tage, implizite Konvertierungen einer Klassenhierachie durchführen zu können:</p>
<pre><code class="language-cpp">class base { };
class derived { };

smart_ptr&lt;base&gt; ptr1(new base);
smart_ptr&lt;base&gt; ptr2(new derived); // base* -&gt; derived*
</code></pre>
<p>Um das intuitive Verhalten noch zu verbessern, wurden u.a. Operatoren wie <code>operator -&gt;()</code> überladen, damit hat man direkten Zeiger-Zugriff.</p>
<blockquote>
<p>&gt; Frage nr. 2</p>
</blockquote>
<p>Einen Smartpointer legst du im allgemeinen so an:</p>
<pre><code class="language-cpp">smart_ptr&lt;type&gt; ptr(new type());
smart_ptr&lt;type&gt; ptr2(ptr); // Kopiere Pointer (Achtung! Unterschiedliches Verhalten!)
</code></pre>
<p>An die Adresse des Pointers kommst du so: <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
<pre><code class="language-cpp">smart_ptr&lt;type&gt; *ptr_of_the_ptr = &amp;ptr;
</code></pre>
<p>Das ist aber bestimmt nicht das, was du willst. An den Zeiger, der im Pointer gespeichert wird, kommst du eben z.B. mit <code>operator -&gt;()</code> oder <code>get()</code></p>
<pre><code class="language-cpp">type *raw_ptr = ptr.get();
raw_ptr-&gt;some_memfun();
ptr-&gt;some_memfun(); // Überladener -&gt; Operator bringt auch Zeigerzugriff
</code></pre>
<p>Zu 3.</p>
<p>Es gibt verschiedene Zeigerarten. Der für deinen Zweck sinnvollste ist <code>boost::shared_ptr</code> oder <code>tr1::shared_ptr</code> . Je nach dem, wie viele Smartpointer den rohen Zeiger beinhaltet, wird ein Referenzzähler hoch bzw. runtergezählt. Wenn kein <code>shared_ptr</code> mehr drauf zeigt, wird das Objekt gelöscht. (Destruktoraufruf + Speicherfreigabe).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1808305</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1808305</guid><dc:creator><![CDATA[Ad aCTa]]></dc:creator><pubDate>Sun, 15 Nov 2009 13:39:18 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu SMARTPTR &#x2F; Smart pointer on Sun, 15 Nov 2009 14:13:26 GMT]]></title><description><![CDATA[<p>Vielleicht hilft dir auch der <a href="http://magazin.c-plusplus.net/artikel/Schlaue%20Zeiger%20-%20Boost%20Smart%20Pointer" rel="nofollow">Artikel</a> des C++-Magazins über Smart-Pointer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1808330</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1808330</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 15 Nov 2009 14:13:26 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu SMARTPTR &#x2F; Smart pointer on Sun, 15 Nov 2009 23:05:35 GMT]]></title><description><![CDATA[<blockquote>
<p>Es gibt verschiedene Zeigerarten. Der für deinen Zweck sinnvollste ist <code>boost::shared_ptr</code> oder <code>tr1::shared_ptr</code> .</p>
</blockquote>
<p>Ich habe mir noch die Header-Dateien, in denen Beschreibung für Smart-Pointers stehen und die in das Projekt eingebunden sind, angeschaut. Ich vermute mal, es war eine frühere Version von den Smartpointers. Es gibt <strong>Ptr</strong> und <strong>InactivePtr</strong>. Andere Arten sehe ich nicht. Statt <strong>get</strong> gibt es <strong>GetRawPtr()</strong>. Wahrscheinlich waren die <strong>Ptr</strong> die Vorfahren von <strong>shared_ptr</strong></p>
<blockquote>
<p>&gt; Frage nr. 2</p>
</blockquote>
<blockquote>
<p>Einen Smartpointer legst du im allgemeinen so an:</p>
<pre><code class="language-cpp">smart_ptr&lt;type&gt; ptr(new type());
smart_ptr&lt;type&gt; ptr2(ptr); // Kopiere Pointer (Achtung! Unterschiedliches Verhalten!)
</code></pre>
</blockquote>
<p>Entschuldigung, was heißt &quot;Kopiere Pointer&quot;? Dass die Adresse kopiert wird?</p>
<blockquote>
<p>Das ist aber bestimmt nicht das, was du willst. An den Zeiger, der im Pointer gespeichert wird, kommst du eben z.B. mit <code>operator -&gt;()</code> oder <code>get()</code></p>
</blockquote>
<p>Sorry, ich bin jetzt gerade völlig durcheinander. Daher noch mal alle Fragen zusammengefasst. Ich sehe schon Steine in mich fliegen, aber vielleicht werdet ihr wieder so nett und schreibt, was falsch ist, wie es richtig sein sollte.</p>
<pre><code>#define SMARTPTR(type) Ptr&lt;type&gt;
typedef list&lt;SMARTPTR(Ding), GCALLOC(SMARTPTR(Ding)) &gt; DingList;	
DingList ding_list = getDingList();
</code></pre>
<p>Angenommen, ich habe bereits eine Liste <strong>ding_list</strong>. Diese kann beliebig geändert werden, aber zu irgendeinem Zeitpunkt brauche ich eine Kopie davon, an der nichts gemacht werden dürfte. Die erste Liste und deren Inhalt darf weiter geändert werden.</p>
<pre><code class="language-cpp">DingList kopie_ding_list;
DingList::iterator dl_it;

for(dl_it = ding_list.begin(); dl_it = ding_list.end(); dl_it++)
{
    SMARTPTR(Ding) tmp_ding = *dl_it;
    kopie_ding_list.push_back(tmp_ding);
}
</code></pre>
<p>Zu einem späteren Zeitpunkt wird es entschieden, dass die erste Liste jetzt aus ihrer Kopie wiederherstellt werden sollte</p>
<pre><code class="language-cpp">ding_list.clear();
DingList::iterator dl_it;

for(dl_it = kopie_ding_list.begin(); dl_it = kopie_ding_list.end(); dl_it++)
{
    SMARTPTR(Ding) tmp_ding = *dl_it;
    ding_list.push_back(tmp_ding);
}
</code></pre>
<p>Mittlerweile bezweifle ich stark, dass ich das ganze richtig implementiert hatte. Aber nun kommt der nächste Punkt. Nachdem ich die erste Liste wiederherstellt hatte, muss ich noch eine erzeugen, die nur aus einem Teil der ersten besteht (zb.jedes zweites Element), aber so dass ihre Elemente auf dieselben Objekte zeigen, wie in der ersten. Dazu folgender code</p>
<pre><code class="language-cpp">DingList teil_ding_list;
DingList::iterator dl_it;

for(dl_it = ding_list.begin(); dl_it != ding_list.end(); dl_it++)
{
    if (!ding_list.end()) dl_it++;
    SMARTPTR(Ding) tmp_ding = dl_it.get();
    teil_ding_list.push_back(tmp_ding);
}
</code></pre>
<p>Ich danke euch schon im Voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1808557</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1808557</guid><dc:creator><![CDATA[ametim]]></dc:creator><pubDate>Sun, 15 Nov 2009 23:05:35 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu SMARTPTR &#x2F; Smart pointer on Mon, 16 Nov 2009 00:54:31 GMT]]></title><description><![CDATA[<p>ametim schrieb:</p>
<blockquote>
<blockquote>
<p>Es gibt verschiedene Zeigerarten. Der für deinen Zweck sinnvollste ist <code>boost::shared_ptr</code> oder <code>tr1::shared_ptr</code> .</p>
</blockquote>
<p>Ich habe mir noch die Header-Dateien, in denen Beschreibung für Smart-Pointers stehen und die in das Projekt eingebunden sind, angeschaut. Ich vermute mal, es war eine frühere Version von den Smartpointers. Es gibt <strong>Ptr</strong> und <strong>InactivePtr</strong>. Andere Arten sehe ich nicht. Statt <strong>get</strong> gibt es <strong>GetRawPtr()</strong>. Wahrscheinlich waren die <strong>Ptr</strong> die Vorfahren von <strong>shared_ptr</strong></p>
</blockquote>
<p>Nein. Klingt eher so als waeren deine Smartpointer-Klassen auf dem eigenen Mist der Entwickler deines Projekts gewachsen. Die meisten der Ratschlaege in diesem Thread beziehen sich auf std::smart_ptr (die Smartpointer-Klasse die Teil des C++ standards ist) bzw. auf die Smartpointer-Klassen aus der boost-Bibliothek (die Teil es C++ TR1 sind und somit auch Teil des neuen C++ Standards werden). Wie die Smartpointer-Klasse, die du verwendest, im Detail aussieht/funktioniert, koennen wir nur raten!</p>
<blockquote>
<blockquote>
<p>&gt; Frage nr. 2</p>
</blockquote>
<blockquote>
<p>Einen Smartpointer legst du im allgemeinen so an:</p>
<pre><code class="language-cpp">smart_ptr&lt;type&gt; ptr(new type());
smart_ptr&lt;type&gt; ptr2(ptr); // Kopiere Pointer (Achtung! Unterschiedliches Verhalten!)
</code></pre>
</blockquote>
<p>Entschuldigung, was heißt &quot;Kopiere Pointer&quot;? Dass die Adresse kopiert wird?</p>
</blockquote>
<p>Genau</p>
<blockquote>
<blockquote>
<p>Das ist aber bestimmt nicht das, was du willst. An den Zeiger, der im Pointer gespeichert wird, kommst du eben z.B. mit <code>operator -&gt;()</code> oder <code>get()</code></p>
</blockquote>
<p>Sorry, ich bin jetzt gerade völlig durcheinander. Daher noch mal alle Fragen zusammengefasst. Ich sehe schon Steine in mich fliegen, aber vielleicht werdet ihr wieder so nett und schreibt, was falsch ist, wie es richtig sein sollte.<br />
[....]</p>
</blockquote>
<p>Wir koennen dir nicht genau sagen wie das geht, kommt drauf an wie deine Smartpointer-Klasse genau aussieht, besonders das Copy-Ctor-Verhalten. In der Regel ists heikel, zwei Smartpointer zu haben, die auf den gleichen Pointer aufpassen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1808568</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1808568</guid><dc:creator><![CDATA[Blue-Tiger]]></dc:creator><pubDate>Mon, 16 Nov 2009 00:54:31 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu SMARTPTR &#x2F; Smart pointer on Mon, 16 Nov 2009 09:11:53 GMT]]></title><description><![CDATA[<p>Es war gestern schon zu spät um noch etwas zu schreiben. Ich glaube, ich habe alle meine Fehler verstanden, was mir leider nicht weiter hilft.</p>
<blockquote>
<p>Sorry, ich bin jetzt gerade völlig durcheinander. Daher noch mal alle Fragen zusammengefasst. Ich sehe schon Steine in mich fliegen, aber vielleicht werdet ihr wieder so nett und schreibt, was falsch ist, wie es richtig sein sollte.</p>
<pre><code>#define SMARTPTR(type) Ptr&lt;type&gt;
typedef list&lt;SMARTPTR(Ding), GCALLOC(SMARTPTR(Ding)) &gt; DingList;	
DingList ding_list = getDingList();
</code></pre>
<p>Angenommen, ich habe bereits eine Liste <strong>ding_list</strong>. Diese kann beliebig geändert werden, aber zu irgendeinem Zeitpunkt brauche ich eine Kopie davon, an der nichts gemacht werden dürfte. Die erste Liste und deren Inhalt darf weiter geändert werden.</p>
<pre><code class="language-cpp">DingList kopie_ding_list;
DingList::iterator dl_it;

for(dl_it = ding_list.begin(); dl_it = ding_list.end(); dl_it++)
{
    SMARTPTR(Ding) tmp_ding = *dl_it;
    kopie_ding_list.push_back(tmp_ding);
}
</code></pre>
</blockquote>
<p>Wahrscheinlich sehr falsch. Denn ich kopiere nur den Pointer, muss aber erst einen Objekt als kopie von dem, auf das Pointer zeigt, erstellen und einen Pointer auf dieses dann in der Kopie-Liste speichern.</p>
<blockquote>
<p>Zu einem späteren Zeitpunkt wird es entschieden, dass die erste Liste jetzt aus ihrer Kopie wiederherstellt werden sollte</p>
<pre><code class="language-cpp">ding_list.clear();
DingList::iterator dl_it;

for(dl_it = kopie_ding_list.begin(); dl_it = kopie_ding_list.end(); dl_it++)
{
    SMARTPTR(Ding) tmp_ding = *dl_it;
    ding_list.push_back(tmp_ding);
}
</code></pre>
</blockquote>
<p>Muss fast genau so gemacht werden, schätze ich mal.</p>
<blockquote>
<p>Nachdem ich die erste Liste wiederherstellt hatte, muss ich noch eine erzeugen, die nur aus einem Teil der ersten besteht (zb.jedes zweites Element), aber so dass ihre Elemente auf dieselben Objekte zeigen, wie in der ersten. Dazu folgender code</p>
<pre><code class="language-cpp">DingList teil_ding_list;
DingList::iterator dl_it;

for(dl_it = ding_list.begin(); dl_it != ding_list.end(); dl_it++)
{
    if (!ding_list.end()) dl_it++;
    SMARTPTR(Ding) tmp_ding = dl_it.get(); // .get() muss weg
    teil_ding_list.push_back(tmp_ding);
}
</code></pre>
</blockquote>
<p>Und das ist wahrscheinlich der mehr oder weniger richtige Abschnitt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1808644</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1808644</guid><dc:creator><![CDATA[ametim]]></dc:creator><pubDate>Mon, 16 Nov 2009 09:11:53 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu SMARTPTR &#x2F; Smart pointer on Mon, 16 Nov 2009 11:41:36 GMT]]></title><description><![CDATA[<p>ametim schrieb:</p>
<blockquote>
<p>Ich glaube, ich habe alle meine Fehler verstanden, was mir leider nicht weiter hilft.</p>
</blockquote>
<p>Ich glaube auch das wir dir nicht helfen können wenn es um eigene Smartpointerklassen geht, die wir auch nicht kennen. Ebenso wie GCALLOC auch nicht zum C++ Standard gehört. Da musst du dich wohl im Projekt rumfragen, oder die Sourcen studieren.</p>
<p>Wenn ich richtig liege könnte dir aber vielleicht <a href="http://smart-pointers.sourceforge.net/" rel="nofollow">diese Referenz</a> weiterhelfen (Letzte Änderung scheint von 2001 zu sein). Grundsätzlich würde ich aber eher zu den Implementierungen von boost &amp; tr1 (sofern verfügbar) greifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1808714</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1808714</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Mon, 16 Nov 2009 11:41:36 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu SMARTPTR &#x2F; Smart pointer on Mon, 16 Nov 2009 13:31:37 GMT]]></title><description><![CDATA[<p>asc schrieb:</p>
<blockquote>
<p>Ich glaube auch das wir dir nicht helfen können wenn es um eigene Smartpointerklassen geht, die wir auch nicht kennen. Ebenso wie GCALLOC auch nicht zum C++ Standard gehört. Da musst du dich wohl im Projekt rumfragen, oder die Sourcen studieren.</p>
<p>Wenn ich richtig liege könnte dir aber vielleicht <a href="http://smart-pointers.sourceforge.net/" rel="nofollow">diese Referenz</a> weiterhelfen (Letzte Änderung scheint von 2001 zu sein). Grundsätzlich würde ich aber eher zu den Implementierungen von boost &amp; tr1 (sofern verfügbar) greifen.</p>
</blockquote>
<p>Auf jeden Fall Danke an Euch alle. Es hilft bereits einem, wenn er das Problem in einem Forum postet. Man bekommt irgendwie neue Impulse.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/14941">@Asc</a> danke für den Link. Leider darf ich nicht viel an dem Projekt ändern, deswegen bleibt erstmal bei der alten Biblithek.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1808764</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1808764</guid><dc:creator><![CDATA[ametim]]></dc:creator><pubDate>Mon, 16 Nov 2009 13:31:37 GMT</pubDate></item></channel></rss>