<?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[in C-Library C++ verwenden???]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich arbeite mit Modelica als objektorientierte Simulationsumgebung. Es ist möglich dort externen C-Code zu integrieren. Dazu muss einen Headerdatei und eine Library mit der Endung &quot;.a&quot; eingebunden werden.</p>
<p>Ich habe einige praktische Bibliotheken, die ich gerne einbinden würde, die allerdings in C++ geschrieben sind. Das Einbinden funktioniert nicht ohne weiteres. Der gcc-Compiler kann mit den lib-Dateien nichts anfangen.</p>
<p>Wie kann man es hinbekommen, eine C-Library zu erstellen, die auf eine C++-Library zugreift, ohne dass Modelica den C++-Code mit compilieren muss???</p>
<p>Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/160277/in-c-library-c-verwenden</link><generator>RSS for Node</generator><lastBuildDate>Fri, 11 Sep 2026 06:04:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/160277.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 24 Sep 2006 11:37:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to in C-Library C++ verwenden??? on Sun, 24 Sep 2006 11:37:43 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich arbeite mit Modelica als objektorientierte Simulationsumgebung. Es ist möglich dort externen C-Code zu integrieren. Dazu muss einen Headerdatei und eine Library mit der Endung &quot;.a&quot; eingebunden werden.</p>
<p>Ich habe einige praktische Bibliotheken, die ich gerne einbinden würde, die allerdings in C++ geschrieben sind. Das Einbinden funktioniert nicht ohne weiteres. Der gcc-Compiler kann mit den lib-Dateien nichts anfangen.</p>
<p>Wie kann man es hinbekommen, eine C-Library zu erstellen, die auf eine C++-Library zugreift, ohne dass Modelica den C++-Code mit compilieren muss???</p>
<p>Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1143414</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1143414</guid><dc:creator><![CDATA[KeineAhnung78]]></dc:creator><pubDate>Sun, 24 Sep 2006 11:37:43 GMT</pubDate></item><item><title><![CDATA[Reply to in C-Library C++ verwenden??? on Sun, 24 Sep 2006 12:48:15 GMT]]></title><description><![CDATA[<p>KeineAhnung78 schrieb:</p>
<blockquote>
<p>Wie kann man es hinbekommen, eine C-Library zu erstellen, die auf eine C++-Library zugreift, ohne dass Modelica den C++-Code mit compilieren muss???</p>
</blockquote>
<p>Du kannst unter C nur bestimmte &quot;normale&quot; Funktionen (keine Memberfunktionen) aus C++ aufrufen, das aber auch nur wenn du die entsprechenden Funktionen als extern &quot;C&quot; deklarierst (in der C++ Bibliothek). Falls das aber keine selbergeschriebene ist oder falls die Objekte oder exceptions verwendet, dann lass es am besten bleiben oder nimm einfach nen c++ compiler für dein Projekt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1143432</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1143432</guid><dc:creator><![CDATA[bluecode]]></dc:creator><pubDate>Sun, 24 Sep 2006 12:48:15 GMT</pubDate></item><item><title><![CDATA[Reply to in C-Library C++ verwenden??? on Sun, 24 Sep 2006 12:54:40 GMT]]></title><description><![CDATA[<blockquote>
<p>Falls das aber keine selbergeschriebene ist oder falls die Objekte oder exceptions verwendet, dann lass es am besten bleiben oder nimm einfach nen c++ compiler für dein Projekt.</p>
</blockquote>
<p>Ich such mir die Compilieroptionen ja leider nicht selber aus. Das macht Modelica (<a href="http://www.modelica.org" rel="nofollow">www.modelica.org</a>).</p>
<p>OK, die Geschichte mir dem extern &quot;C&quot; war mir bekannt...</p>
<p>Aber so wie es aussieht, scheint das nicht so zu klappen, wie ich das brauche, denn ich würde gerne von Modelica aus auf meine C++-Klassen zugreifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1143435</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1143435</guid><dc:creator><![CDATA[KeineAhnung78]]></dc:creator><pubDate>Sun, 24 Sep 2006 12:54:40 GMT</pubDate></item><item><title><![CDATA[Reply to in C-Library C++ verwenden??? on Sun, 24 Sep 2006 15:52:29 GMT]]></title><description><![CDATA[<p>Hi, du musst dir halt ein C Interface für deine C++ Klassen machen, und dann halt mit einem Handle arbeiten.</p>
<p>Beispiel mehr oder weniger Pseudocode:</p>
<p>C++ Klasse:</p>
<pre><code class="language-cpp">class Foobar
{
public: 
     Foobar(); 
     ~Foobar();
     bool MyFunction(int parameter);
};
</code></pre>
<p>C Interface:</p>
<pre><code class="language-cpp">extern &quot;C&quot; 
{
    struct FoobarHandle;
    typedef struct FoobarHandle f_handle;
    f_handle * create_foobar();
    int foobar_MyFunction(f_handle * h, int parameter);
    void free_foobar(f_handle * h);
}
</code></pre>
<p>Implementation des Interface:</p>
<pre><code class="language-cpp">#include &quot;foobar.h&quot;
struct FoobarHandle
{
    Foobar * ptr;
};

extern &quot;C&quot; 
{
    f_handle * create_foobar()
    {
         f_handle * f_handle = new f_handle();
         f_handle-&gt;ptr = new Foobar();
    }
    int foobar_MyFunction(f_handle * h, int parameter)
    {
         if(h &amp;&amp; h-&gt;ptr) return h-&gt;ptr-&gt;MyFunction(parameter);
         return 0; // Fehler
    }
    void free_foobar(f_handle * h)
    {
        if(h) delete h-&gt;ptr;
        delete h;
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1143503</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1143503</guid><dc:creator><![CDATA[evilissimo]]></dc:creator><pubDate>Sun, 24 Sep 2006 15:52:29 GMT</pubDate></item><item><title><![CDATA[Reply to in C-Library C++ verwenden??? on Mon, 25 Sep 2006 09:58:18 GMT]]></title><description><![CDATA[<p>OK, danke. Werd ich mir mal auf der Zunge zergehen lassen und ausprobieren <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/1143897</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1143897</guid><dc:creator><![CDATA[KeineAhnung78]]></dc:creator><pubDate>Mon, 25 Sep 2006 09:58:18 GMT</pubDate></item><item><title><![CDATA[Reply to in C-Library C++ verwenden??? on Mon, 25 Sep 2006 10:03:05 GMT]]></title><description><![CDATA[<p>evilissimo schrieb:</p>
<blockquote>
<pre><code class="language-cpp">f_handle * create_foobar()
    {
         f_handle * f_handle = new f_handle();
         f_handle-&gt;ptr = new Foobar();
    }
</code></pre>
</blockquote>
<p>Also hier dürfte noch ein return fehlen (und ich bezweifle, daß ein Compiler die Deklaration &quot;f_handle* f_handle;&quot; schlucken würde).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1143904</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1143904</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 25 Sep 2006 10:03:05 GMT</pubDate></item><item><title><![CDATA[Reply to in C-Library C++ verwenden??? on Mon, 25 Sep 2006 10:08:52 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>evilissimo schrieb:</p>
<blockquote>
<pre><code class="language-cpp">f_handle * create_foobar()
    {
         f_handle * f_handle = new f_handle();
         f_handle-&gt;ptr = new Foobar();
    }
</code></pre>
</blockquote>
<p>Also hier dürfte noch ein return fehlen (und ich bezweifle, daß ein Compiler die Deklaration &quot;f_handle* f_handle;&quot; schlucken würde).</p>
</blockquote>
<p>Ich hab ja drüber geschrieben &quot;Beispiel mehr oder weniger Pseudocode:&quot;</p>
<p>Ich hatte das nur auf die schnelle hingeschrieben <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="😉"
    /> Ich wollte damit keine 100% korrekte Lösung aufzeigen, sondern nur zeigen wie es ungefähr gehen könnte.</p>
<p>BR<br />
Vinzenz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1143910</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1143910</guid><dc:creator><![CDATA[evilissimo]]></dc:creator><pubDate>Mon, 25 Sep 2006 10:08:52 GMT</pubDate></item></channel></rss>