<?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[C++ - dynamische library]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich meine mich zu erinnern, dass die Definition von Funktionen innerhalb einer dll nur für C definiert ist und so kompilerübergreifend funktioniert.<br />
Als einfache statische Funktionen mit Pod als Parameter bzw. Rückgabe-Typen.<br />
Also zumindest, weiß ich diese definiert sind. Wie schaut es aus, wenn ich ein Objekt übergebe, das Member-Funktionen hat? Ist dieser Fall auch definiert?<br />
Oder wenn das Objekt dann virtuelle Funktionen hat.<br />
Wo ist die Grenze?</p>
<p>Hat irgendjemand evtl. einen hilfreichen Link?<br />
Solange man nur einen Kompiler verwendet, funktioniert ja so ziemlich alles...<br />
Aber wo sind die Grenzen, wenn man mehrere Compiler verwendet?</p>
<p>Gruß,<br />
XSpille</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/307726/c-dynamische-library</link><generator>RSS for Node</generator><lastBuildDate>Thu, 06 Aug 2026 09:31:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/307726.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 03 Sep 2012 18:51:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C++ - dynamische library on Mon, 03 Sep 2012 18:51:25 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich meine mich zu erinnern, dass die Definition von Funktionen innerhalb einer dll nur für C definiert ist und so kompilerübergreifend funktioniert.<br />
Als einfache statische Funktionen mit Pod als Parameter bzw. Rückgabe-Typen.<br />
Also zumindest, weiß ich diese definiert sind. Wie schaut es aus, wenn ich ein Objekt übergebe, das Member-Funktionen hat? Ist dieser Fall auch definiert?<br />
Oder wenn das Objekt dann virtuelle Funktionen hat.<br />
Wo ist die Grenze?</p>
<p>Hat irgendjemand evtl. einen hilfreichen Link?<br />
Solange man nur einen Kompiler verwendet, funktioniert ja so ziemlich alles...<br />
Aber wo sind die Grenzen, wenn man mehrere Compiler verwendet?</p>
<p>Gruß,<br />
XSpille</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2248207</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2248207</guid><dc:creator><![CDATA[XSpille]]></dc:creator><pubDate>Mon, 03 Sep 2012 18:51:25 GMT</pubDate></item><item><title><![CDATA[Reply to C++ - dynamische library on Mon, 03 Sep 2012 21:18:36 GMT]]></title><description><![CDATA[<p>Du hast es schon ganz richtig erkannt: Alles, was über C hinausgeht, kannst du vergessen, zumindest beim Visual Studio. Der GCC unter Linux ist da etwas <a href="http://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html" rel="nofollow">ABI-kompatibilitätsfreundlicher</a>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2248239</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2248239</guid><dc:creator><![CDATA[Bloops]]></dc:creator><pubDate>Mon, 03 Sep 2012 21:18:36 GMT</pubDate></item><item><title><![CDATA[Reply to C++ - dynamische library on Mon, 03 Sep 2012 21:42:54 GMT]]></title><description><![CDATA[<p>thx <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>Genau das hatte ich befürchtet <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2248245</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2248245</guid><dc:creator><![CDATA[XSpille]]></dc:creator><pubDate>Mon, 03 Sep 2012 21:42:54 GMT</pubDate></item><item><title><![CDATA[Reply to C++ - dynamische library on Mon, 03 Sep 2012 22:33:27 GMT]]></title><description><![CDATA[<p>Es gibt das <a href="http://www.swag.uwaterloo.ca/acd/docs/ItaniumC++ABI.htm" rel="nofollow">Itanium C++ ABI</a> fuer 64-Bit Systeme. Nur ein einziger grosser Compilerhersteller haelt sich nicht daran. Rate mal, welcher.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2248255</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2248255</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Mon, 03 Sep 2012 22:33:27 GMT</pubDate></item><item><title><![CDATA[Reply to C++ - dynamische library on Mon, 03 Sep 2012 22:39:30 GMT]]></title><description><![CDATA[<p>Perfekt! <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>Wer nicht integriert werden möchte, ist selber schuld <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2248258</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2248258</guid><dc:creator><![CDATA[XSpille]]></dc:creator><pubDate>Mon, 03 Sep 2012 22:39:30 GMT</pubDate></item><item><title><![CDATA[Reply to C++ - dynamische library on Mon, 03 Sep 2012 22:46:53 GMT]]></title><description><![CDATA[<p>Unter Windows: COM bzw. WinRT, damit bist du dann sogar sprachunabhängig...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2248259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2248259</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Mon, 03 Sep 2012 22:46:53 GMT</pubDate></item><item><title><![CDATA[Reply to C++ - dynamische library on Tue, 04 Sep 2012 00:28:02 GMT]]></title><description><![CDATA[<p>Unter Windows funktioniert nicht nur COM, sondern auch das Übergeben von Zeigern auf &quot;COM-artige&quot; Interfaces/Objekte compilerübergreifend (allerdings ohne &quot;echtes&quot; COM dann nicht mehr sprachunabhängig). Zumindest mit allen Compilern die COM &quot;können&quot;, und das können soweit ich weiss irgendwie alle relevanten (MSVC, Intel, MinGW -- vermutlich auch Borland).</p>
<p>Wobei &quot;COM-argtig&quot; jetzt heisst...<br />
* Die Klasse ist abstrakt und hat (ausschliesslich) &quot;public virtual pure&quot; Memberfunktionen, die alle <code>__declspec(stdcall)</code> sind<br />
* Die Klasse hat keinen Konstruktor und keinen Destruktor (auch keinen virtuellen Destruktor)<br />
* Die Klasse darf von genau einer anderen solchen Klasse public abgeleitet sein, und sonst keine Basisklassen haben<br />
* Die Klasse besteht aus sonst nichts, d.h. keine Datenmember o.ä.</p>
<p>Und natürlich muss man bei den Parameter- und Returntypen aufpassen, d.h. <code>std::string</code> übergeben ist logischerweise nicht drin.</p>
<p>Irgendwelche COM-Interfaces wie <code>IUnknown</code> müssen aber nicht implementiert werden.</p>
<p><code>dynamic_cast</code> geht natürlich nicht, aber da kann man ja drum-rum arbeiten, wie es auch COM mit <code>IUnknown::QueryInterface</code> macht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2248274</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2248274</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 04 Sep 2012 00:28:02 GMT</pubDate></item></channel></rss>