<?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[Kann man STL-Funktionen in einem reinem C-Projekt verwenden?]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe hier ein umfangreiches Projekt in reinem C. Jetzt möchte ich aber an einer Stelle die Lists Funktion der STL verwenden um mich in C nicht selber mit dem ganzen Mist, was doppelt verkettete Listen angeht, rumschlagen zu müssen. Funktioniert das irgendwie?</p>
<p>Ich bräuchte eine Liste vom Typ struct auf die ich später aus der main() des C-Programms lesend und schreiben zugreifen kann. Dachte mir ich schreibe ein C++ Funktion der ich dann später sage &quot;gib mir den Inhalt des Structs wo ID=xyz&quot; bzw. &quot;lösche Structinhalt, bei dem ID=xyz&quot;. Das Struct selber kann ich ja außerhalb der main() des C-Programms global definieren wenn es sein muss.</p>
<p>Bisher habe ich noch nie mit C++ gearbeitet. Mein STL-Testprogramm läuft für sich alleine aber ganz gut. Zumindest kann es schon Elemente eintragen und suchen <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="🙂"
    /> Aber ich habe absolut keine Idee wie ich von C aus auf die Funktion zugreifen kann und wie ich dann die Rückgabe der Funktion bzw. die ganze Liste global in meinem C-Projekt verwenden kann.</p>
<p>Ist das eventuell alles zu kompliziert was ich da vorhabe und sollte ich lieber die doppelt verkettete Liste in C selber programmieren?</p>
<p>Ich steht momentan total auf dem Schlauch. <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>
<p>Würde mich über den ein oder anderen Tip freuen.</p>
<p>Vielen Dank!!</p>
<p>Gruß<br />
Thorsten</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/178480/kann-man-stl-funktionen-in-einem-reinem-c-projekt-verwenden</link><generator>RSS for Node</generator><lastBuildDate>Sun, 20 Sep 2026 23:03:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/178480.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 11 Apr 2007 15:33:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Kann man STL-Funktionen in einem reinem C-Projekt verwenden? on Wed, 11 Apr 2007 15:33:55 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe hier ein umfangreiches Projekt in reinem C. Jetzt möchte ich aber an einer Stelle die Lists Funktion der STL verwenden um mich in C nicht selber mit dem ganzen Mist, was doppelt verkettete Listen angeht, rumschlagen zu müssen. Funktioniert das irgendwie?</p>
<p>Ich bräuchte eine Liste vom Typ struct auf die ich später aus der main() des C-Programms lesend und schreiben zugreifen kann. Dachte mir ich schreibe ein C++ Funktion der ich dann später sage &quot;gib mir den Inhalt des Structs wo ID=xyz&quot; bzw. &quot;lösche Structinhalt, bei dem ID=xyz&quot;. Das Struct selber kann ich ja außerhalb der main() des C-Programms global definieren wenn es sein muss.</p>
<p>Bisher habe ich noch nie mit C++ gearbeitet. Mein STL-Testprogramm läuft für sich alleine aber ganz gut. Zumindest kann es schon Elemente eintragen und suchen <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="🙂"
    /> Aber ich habe absolut keine Idee wie ich von C aus auf die Funktion zugreifen kann und wie ich dann die Rückgabe der Funktion bzw. die ganze Liste global in meinem C-Projekt verwenden kann.</p>
<p>Ist das eventuell alles zu kompliziert was ich da vorhabe und sollte ich lieber die doppelt verkettete Liste in C selber programmieren?</p>
<p>Ich steht momentan total auf dem Schlauch. <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>
<p>Würde mich über den ein oder anderen Tip freuen.</p>
<p>Vielen Dank!!</p>
<p>Gruß<br />
Thorsten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263923</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263923</guid><dc:creator><![CDATA[shinji]]></dc:creator><pubDate>Wed, 11 Apr 2007 15:33:55 GMT</pubDate></item><item><title><![CDATA[Reply to Kann man STL-Funktionen in einem reinem C-Projekt verwenden? on Wed, 11 Apr 2007 15:39:01 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>also Du musst schon einen C++-fähigen Compiler haben ... aber dann kannst Du Dir eine C-Lib basteln (Stichwort &quot;C-Wrapper&quot; ... gibt's schon einiges hier im Forum).<br />
Allerdings bleiben Dir einige C++-Schmackazien (compile-time-Typsicherheit) natürlich verwehrt und Du musst halt immer mit 2 Projekten rumhantieren, die Du synchronisieren musst...</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263925</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263925</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 11 Apr 2007 15:39:01 GMT</pubDate></item><item><title><![CDATA[Reply to Kann man STL-Funktionen in einem reinem C-Projekt verwenden? on Wed, 11 Apr 2007 16:19:03 GMT]]></title><description><![CDATA[<p>--&gt; <a href="http://sglib.sourceforge.net/" rel="nofollow">http://sglib.sourceforge.net/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263973</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263973</guid><dc:creator><![CDATA[vista]]></dc:creator><pubDate>Wed, 11 Apr 2007 16:19:03 GMT</pubDate></item><item><title><![CDATA[Reply to Kann man STL-Funktionen in einem reinem C-Projekt verwenden? on Wed, 11 Apr 2007 22:00:11 GMT]]></title><description><![CDATA[<p>Öh.<br />
Also normal geht das ganz einfach. Beispiel:</p>
<pre><code class="language-cpp">// header:

#ifdef __cplusplus
extern &quot;C&quot; {
#endif

int fupp(void); // void muss für C sein und C++ erlaubts netterweise

#ifdef __cplusplus
} // extern &quot;C&quot;
#endif

// .cpp für die lib:

int fupp() // void ist hier nicht nötig, hier is ja immer C++ am Werk...
{
    try
    {
        // ... feste STL und was auch immer verwenden ...
        return 123;
    }
    catch(...)
    {
        return -1;
    }
}
</code></pre>
<p>Die LIB kompilierst du dann einfach mit deinem C++ Compiler und verwendest sie mit deinem C Compiler. Bzw. die meisten Compiler können auch innerhalb eines Projektes mischen, also extra ne LIB machen zu müssen.</p>
<p>Doof ist halt dass man an der C &lt;-&gt; C++ Schnittstelle mit den Exceptions aufpassen muss, wenn eine Exception in den C Teil fliegt wird der C Teil ziemlich doof schauen und ziemlich wenig damit anfangen können wenn ich es mal so farbig formulieren darf <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/1264235</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264235</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 11 Apr 2007 22:00:11 GMT</pubDate></item><item><title><![CDATA[Reply to Kann man STL-Funktionen in einem reinem C-Projekt verwenden? on Thu, 12 Apr 2007 00:10:45 GMT]]></title><description><![CDATA[<p>Reines C ist das zwar auch nicht, aber du könntest in einem C++-Code das Template instanziieren und zu deinem Projekt linken. Nun kannst du von C aus die gemangelten Methoden (unter Berücksichtigung der Call-Conventions) aufrufen. <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>Nein, ehrlich gesagt ist dein Vorhaben sinnlos. Die STL ist derartig C++ (Klassen, Templates, Operator-Überladung etc. gibt es in C nicht). Mit so etwas wie sglib (siehe vistas Beitrag) solltest du gut bedient sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264281</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264281</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Thu, 12 Apr 2007 00:10:45 GMT</pubDate></item><item><title><![CDATA[Reply to Kann man STL-Funktionen in einem reinem C-Projekt verwenden? on Thu, 12 Apr 2007 10:15:50 GMT]]></title><description><![CDATA[<p>Also wenn dein Compiler C++ fähig ist, brauchst du einfach eine extra .cpp Datei erzeugen und mittels 'extern &quot;C&quot;' die Schnittstellenfunktion deklarieren (eine eigene Lib ist dann nicht nötig).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1264469</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1264469</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Thu, 12 Apr 2007 10:15:50 GMT</pubDate></item></channel></rss>