<?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++ library-basiertes pluginsystem für mehrere plattformen]]></title><description><![CDATA[<p>hi, ich hoffe der titel ist einigermaßen themenbezogen. ich habe bei meinem kleinen projekt vorgehabt statt einer hässlichen riesenklasse ein pluginsystem für textparserfuktionen aufzuziehen. in etwa soll das system so aussehen:</p>
<pre><code class="language-cpp">class Base
{
public:
	static char c; // some reference counter or whatever

	int a, b;

	Base()
	{
		c++;
	}

	virtual ~Base()
	{
		...
	}

	virtual void func()= 0;	 // this is an abstract base class
};

char Base::c= 0;

// define an actual type of object with certain behavior
class Derived: public Base
{
public:
	Derived()
	{
		a= 3; b= 4;
	}

	virtual void func()
	{
		a= -1;
	}
};
</code></pre>
<p>was ich jetzt wissen wollte ist aber. gibt es eine möglichkeit oder eine lib (die jemand gut findet) mit der ich plattformunabhängig dlls/sos etc laden kann? weil ich nicht auf makrocode-spielereien zurück greifen wollte. kann sowas evtl boost? oder gibts alternativen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/259504/c-library-basiertes-pluginsystem-für-mehrere-plattformen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 19:42:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/259504.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 24 Jan 2010 12:06:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to c++ library-basiertes pluginsystem für mehrere plattformen on Sun, 24 Jan 2010 12:06:50 GMT]]></title><description><![CDATA[<p>hi, ich hoffe der titel ist einigermaßen themenbezogen. ich habe bei meinem kleinen projekt vorgehabt statt einer hässlichen riesenklasse ein pluginsystem für textparserfuktionen aufzuziehen. in etwa soll das system so aussehen:</p>
<pre><code class="language-cpp">class Base
{
public:
	static char c; // some reference counter or whatever

	int a, b;

	Base()
	{
		c++;
	}

	virtual ~Base()
	{
		...
	}

	virtual void func()= 0;	 // this is an abstract base class
};

char Base::c= 0;

// define an actual type of object with certain behavior
class Derived: public Base
{
public:
	Derived()
	{
		a= 3; b= 4;
	}

	virtual void func()
	{
		a= -1;
	}
};
</code></pre>
<p>was ich jetzt wissen wollte ist aber. gibt es eine möglichkeit oder eine lib (die jemand gut findet) mit der ich plattformunabhängig dlls/sos etc laden kann? weil ich nicht auf makrocode-spielereien zurück greifen wollte. kann sowas evtl boost? oder gibts alternativen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843987</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843987</guid><dc:creator><![CDATA[dgrat]]></dc:creator><pubDate>Sun, 24 Jan 2010 12:06:50 GMT</pubDate></item><item><title><![CDATA[Reply to c++ library-basiertes pluginsystem für mehrere plattformen on Sun, 24 Jan 2010 12:44:12 GMT]]></title><description><![CDATA[<p>Sowas ist eigentlich gleich geschrieben. Windows: LoadLibrary, Linux: dlopen.<br />
stlplus hat ne Klasse &quot;dynaload&quot;, welche das schon Plattformunabhängig anbietet. Nur hatte ich einige Probleme damit. Wurde nicht ausreichend auf Fehler geprüft, und hat ständig gesegfaulted <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="😃"
    /> Aber als Basis für eine eigene bessere Version sollte das allemal reichen.</p>
<p>// edit:<br />
Ich hab nochmal kurz überlegt. Im Zusammenhang mit einer Factory-Methode, die in der plugin-dll lag (muss ja so sein), die mir ein Objekt lieferte, gab es nen Crash, da dynaload im Desctructor das Handle löscht und mein Objekt damit Hopps ging. Da hilft es z.B. die Handles+counter in ner statischen map zu speichern und Zerstörung nur über den LibLoader zu gestatten, der den entsprechenden Counter runter zählt und bei counter == 0 das Handle schließt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1843994</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1843994</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Sun, 24 Jan 2010 12:44:12 GMT</pubDate></item><item><title><![CDATA[Reply to c++ library-basiertes pluginsystem für mehrere plattformen on Sun, 24 Jan 2010 19:14:37 GMT]]></title><description><![CDATA[<p>plattformunabhängig geht schonmal garnicht. was geht ist, dass du was bastelst was auf einem OS compilerunabhängig funktioniert. dazu musst du dich aber auf ein reines C interface einschränken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1844190</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1844190</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sun, 24 Jan 2010 19:14:37 GMT</pubDate></item></channel></rss>