<?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[loadlibrary]]></title><description><![CDATA[<p>wie kann ich eine instanz einer klasse erstellen, die von einer dll exportiert wird, die ich wiederum mit loadlibrary zur laufzeit lade</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/68848/loadlibrary</link><generator>RSS for Node</generator><lastBuildDate>Sat, 02 May 2026 06:45:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/68848.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 22 Mar 2004 08:58:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to loadlibrary on Mon, 22 Mar 2004 08:58:16 GMT]]></title><description><![CDATA[<p>wie kann ich eine instanz einer klasse erstellen, die von einer dll exportiert wird, die ich wiederum mit loadlibrary zur laufzeit lade</p>
]]></description><link>https://www.c-plusplus.net/forum/post/485858</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/485858</guid><dc:creator><![CDATA[Sovok]]></dc:creator><pubDate>Mon, 22 Mar 2004 08:58:16 GMT</pubDate></item><item><title><![CDATA[Reply to loadlibrary on Mon, 22 Mar 2004 09:01:10 GMT]]></title><description><![CDATA[<p>stell in der DLL eine Funktion CreateInstance bereit. Die erstellt dir dann die Instanz.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/485860</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/485860</guid><dc:creator><![CDATA[.]]></dc:creator><pubDate>Mon, 22 Mar 2004 09:01:10 GMT</pubDate></item><item><title><![CDATA[Reply to loadlibrary on Mon, 22 Mar 2004 09:19:42 GMT]]></title><description><![CDATA[<p>???<br />
du verstanden haben was ich gefragt?<br />
oder ich nich verstanden was du geantwortet?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/485868</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/485868</guid><dc:creator><![CDATA[Sovok]]></dc:creator><pubDate>Mon, 22 Mar 2004 09:19:42 GMT</pubDate></item><item><title><![CDATA[Reply to loadlibrary on Mon, 22 Mar 2004 09:32:05 GMT]]></title><description><![CDATA[<p>du dumm. ich nix antworten mehr.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/485875</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/485875</guid><dc:creator><![CDATA[.]]></dc:creator><pubDate>Mon, 22 Mar 2004 09:32:05 GMT</pubDate></item><item><title><![CDATA[Reply to loadlibrary on Mon, 22 Mar 2004 09:38:52 GMT]]></title><description><![CDATA[<p>schau mal in FAQ da steht genug darüber</p>
]]></description><link>https://www.c-plusplus.net/forum/post/485884</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/485884</guid><dc:creator><![CDATA[intery]]></dc:creator><pubDate>Mon, 22 Mar 2004 09:38:52 GMT</pubDate></item><item><title><![CDATA[Reply to loadlibrary on Mon, 22 Mar 2004 11:08:29 GMT]]></title><description><![CDATA[<p>hab die faqs nach loadlibrary abgegrast... da steht aber nirgends was von klassen</p>
<p>ich sein blind?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/485928</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/485928</guid><dc:creator><![CDATA[Sovok]]></dc:creator><pubDate>Mon, 22 Mar 2004 11:08:29 GMT</pubDate></item><item><title><![CDATA[Reply to loadlibrary on Mon, 22 Mar 2004 11:20:24 GMT]]></title><description><![CDATA[<p>Du musst in der DLL eine Funktion bereitstellen welche dir die Instanz erstellt.<br />
Von dieser Instanz gibst du dan einen Zeiger zurück.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/485934</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/485934</guid><dc:creator><![CDATA[Unix-Tom]]></dc:creator><pubDate>Mon, 22 Mar 2004 11:20:24 GMT</pubDate></item><item><title><![CDATA[Reply to loadlibrary on Mon, 22 Mar 2004 11:29:35 GMT]]></title><description><![CDATA[<p>Leider gar nicht.</p>
<p>Du kannst dieses Problem aber mit einer Interface Klasse umgehen.<br />
Diese Interfaceklasse muss in der Dll und der Exe die gleiche sein.<br />
Alle Methoden der Interfaceklasse sind virtual.<br />
Dann erstellst du eine Funktion in der Dll, die (anstatt deiner Klasse) die Interfaceklasse zurückgibt.</p>
<p>z.b. so:</p>
<pre><code class="language-cpp">class IPlugin // die Interfaceklasse
{
public:
    IPlugin() {};
    ~IPlugin() {};
    virtual void Aktion1();
    virtual void Aktion2();
};
</code></pre>
<p>Diese Klasse ist in der Dll und der Exe bekannt.<br />
Folgende Klasse ist jetzt die Klasse, die du exportieren willst:</p>
<pre><code class="language-cpp">class DeineKlasse : public IPlugin
{
public:
   DeineKlasse() {};
   ~DeineKlasse() {};
   void Aktion1() { AfxMessageBox(&quot;Funktion 1&quot;); }
   void Aktion2() { AfxMessageBox(&quot;Funktion 2&quot;); }
};
</code></pre>
<p>Folgende Funktion der Dll liefert die Klasse&quot;:</p>
<pre><code class="language-cpp">export &quot;C&quot; IPlugin* __declspec(dllexport) CreateInstance()
{
   DeineKlasse* pClass = new DeineKlasse;
   return (IPlugin*) pClass;
}
</code></pre>
<p>Folgende Funktion der Dll löscht die Klasse wieder</p>
<pre><code class="language-cpp">export &quot;C&quot; void __declspec(dllexport) DeleteInstance(IPlugin* pClass)
{
   DeineKlasse* pKlasse = (DeineKlasse*) pClass;   
   delete pKlasse;
}
</code></pre>
<p>Dann kannst du in der Exe Datei den Zeiger auf die Klasse bekommen:</p>
<pre><code class="language-cpp">IPlugin* pPlugin = CreateInstance();
pPlugin-&gt;Aktion1();
pPlugin-&gt;Aktion2();
DeleteInstance(pPlugin);
</code></pre>
<p>Grüße Rapha</p>
]]></description><link>https://www.c-plusplus.net/forum/post/485940</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/485940</guid><dc:creator><![CDATA[Rapha]]></dc:creator><pubDate>Mon, 22 Mar 2004 11:29:35 GMT</pubDate></item><item><title><![CDATA[Reply to loadlibrary on Mon, 22 Mar 2004 11:36:40 GMT]]></title><description><![CDATA[<p>geil<br />
thx</p>
]]></description><link>https://www.c-plusplus.net/forum/post/485950</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/485950</guid><dc:creator><![CDATA[Sovok]]></dc:creator><pubDate>Mon, 22 Mar 2004 11:36:40 GMT</pubDate></item><item><title><![CDATA[Reply to loadlibrary on Tue, 23 Mar 2004 08:59:21 GMT]]></title><description><![CDATA[<p>habs hinbekommen wenn auch n kleines bischen anders<br />
kennt zufällig einer die unterschiede in der verwendung(falls es welche gibt) zwischen loadlibrary und getprocadress und dlsym und dlopen(linux)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/486551</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/486551</guid><dc:creator><![CDATA[Sovok]]></dc:creator><pubDate>Tue, 23 Mar 2004 08:59:21 GMT</pubDate></item><item><title><![CDATA[Reply to loadlibrary on Tue, 23 Mar 2004 06:45:11 GMT]]></title><description><![CDATA[<p>die befehle machen das gleiche.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/486580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/486580</guid><dc:creator><![CDATA[Unix-Tom]]></dc:creator><pubDate>Tue, 23 Mar 2004 06:45:11 GMT</pubDate></item></channel></rss>