<?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[Plugin Archikektur ohne COM+]]></title><description><![CDATA[<p>Ich würde gerne wissen, ob es möglich ist, eine Pluginarchitektur zu schreiben, die von allen möglichen C++ compilern unter Windows unterstüzt wird, ohne COM+ benutzen zu müssen. Ich sehe ein Problem im unterschiedlichen name-mangling der verschiedenen Compiler. Wie kann ich ein Objekt aus einer DLL importieren, die mit verschiedenen Compilern gebaut wurden und es in meinem Host-Programm nutzen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/234548/plugin-archikektur-ohne-com</link><generator>RSS for Node</generator><lastBuildDate>Wed, 08 Apr 2026 17:37:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/234548.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 19 Feb 2009 10:10:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Plugin Archikektur ohne COM+ on Thu, 19 Feb 2009 10:10:00 GMT]]></title><description><![CDATA[<p>Ich würde gerne wissen, ob es möglich ist, eine Pluginarchitektur zu schreiben, die von allen möglichen C++ compilern unter Windows unterstüzt wird, ohne COM+ benutzen zu müssen. Ich sehe ein Problem im unterschiedlichen name-mangling der verschiedenen Compiler. Wie kann ich ein Objekt aus einer DLL importieren, die mit verschiedenen Compilern gebaut wurden und es in meinem Host-Programm nutzen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1666245</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1666245</guid><dc:creator><![CDATA[Plugin]]></dc:creator><pubDate>Thu, 19 Feb 2009 10:10:00 GMT</pubDate></item><item><title><![CDATA[Reply to Plugin Archikektur ohne COM+ on Thu, 19 Feb 2009 10:23:56 GMT]]></title><description><![CDATA[<p>Mit extern &quot;C&quot;. Du darfst dann halt nur keine Klassen nach aussen geben, wenn es auch unter C verwendet werden soll.<br />
extern &quot;C&quot; stellt u.a. das Name-Mangling ab. Such mal danach im forum, da gibts X-Threads.</p>
<p>Beispiel:</p>
<pre><code>struct Plugin
{
  void* handle;  
};

extern &quot;C&quot; 
Plugin* LoadPlugin(int version)
{
}
</code></pre>
<p>Wenn du das so exportierst, dann ist das für alle Compiler lesbar.<br />
rya.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1666253</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1666253</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Thu, 19 Feb 2009 10:23:56 GMT</pubDate></item><item><title><![CDATA[Reply to Plugin Archikektur ohne COM+ on Thu, 19 Feb 2009 10:25:25 GMT]]></title><description><![CDATA[<p>Wenn Du eine DEF-Datei beim erzeugen der DLL verwendest, hast Du keine Probleme. Dann sind die Namen genau so, wie sie sein müssen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1666255</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1666255</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Thu, 19 Feb 2009 10:25:25 GMT</pubDate></item><item><title><![CDATA[Reply to Plugin Archikektur ohne COM+ on Thu, 19 Feb 2009 11:05:58 GMT]]></title><description><![CDATA[<p>Plugin schrieb:</p>
<blockquote>
<p>Ich würde gerne wissen, ob es möglich ist, eine Pluginarchitektur zu schreiben, die von allen möglichen C++ compilern unter Windows unterstüzt wird, ohne COM+ benutzen zu müssen.</p>
</blockquote>
<p>Genau dafür gibt es COM. Warum willst du es nicht benutzen?<br />
(Du kannst natürlich auch nur auf die Prinzipien von COM (Safecall-Aufrufkonvention, Interfaces, IIDs, IUnknown) aufbauen, ohne die konkrete Implementation von Windows einsetzen zu müssen. Aber ohne das wird es nicht gehen.)</p>
<p>Plugin schrieb:</p>
<blockquote>
<p>Ich sehe ein Problem im unterschiedlichen name-mangling der verschiedenen Compiler. Wie kann ich ein Objekt aus einer DLL importieren, die mit verschiedenen Compilern gebaut wurden und es in meinem Host-Programm nutzen?</p>
</blockquote>
<p>Gar nicht; die Namensdekorierung ist noch das geringste Problem. Dazu kommt, daß unterschiedliche Compiler, ja sogar unterschiedliche Versionen eines Compilers verschiedene Aufrufkonventionen, andere Standardbibliotheken verwenden, unterschiedliche Exception-Codes und -Informationen benutzen, das binäre Layout unterschiedlich handhaben und insbesondere <a href="http://www.audacia-software.de/de/bcb/dynamic-cast-on-interfaces.htm" rel="nofollow">RTTI und Polymorphismus vollkommen individuell implementieren</a>.</p>
<p><em>Edit:</em> E2293 ')' erwartet</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1666293</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1666293</guid><dc:creator><![CDATA[audacia]]></dc:creator><pubDate>Thu, 19 Feb 2009 11:05:58 GMT</pubDate></item><item><title><![CDATA[Reply to Plugin Archikektur ohne COM+ on Thu, 19 Feb 2009 19:48:59 GMT]]></title><description><![CDATA[<p>Scheint so, als ob ich nicht um dieses COM dingens herumkomme. Kann mir wer ein Tutorial dazu empfehlen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1666669</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1666669</guid><dc:creator><![CDATA[Plugin]]></dc:creator><pubDate>Thu, 19 Feb 2009 19:48:59 GMT</pubDate></item><item><title><![CDATA[Reply to Plugin Archikektur ohne COM+ on Sat, 21 Feb 2009 21:09:57 GMT]]></title><description><![CDATA[<p>Kann man auch CORBA als ersatz für COM nehmen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1667804</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1667804</guid><dc:creator><![CDATA[Plugin]]></dc:creator><pubDate>Sat, 21 Feb 2009 21:09:57 GMT</pubDate></item></channel></rss>