<?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++ Klasse als DLL unter VB verfügbar machen]]></title><description><![CDATA[<p>Hallo,<br />
ich suche nach einer gescheiten anleitung wie ich eine C++ Klasse in einer DLL unter VB 6 verfügbar mache. Google lieferte wenig Hilfe.</p>
<p>Problem: Es soll in C++ eine DLL geschrieben werden die auch aus VB herraus aufrufbar ist<br />
Allerdings scheitert es daran VB die C++ Klasse bekannt zu machen.<br />
Ich hab gelesen das ich um das zu umgehen Wrapperfunktionen schreiben darf.</p>
<p>Danke schonmal im voraus für Hilfe <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/topic/179089/c-klasse-als-dll-unter-vb-verfügbar-machen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 10 Jul 2026 03:09:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/179089.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 18 Apr 2007 12:30:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C++ Klasse als DLL unter VB verfügbar machen on Wed, 18 Apr 2007 13:26:55 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich suche nach einer gescheiten anleitung wie ich eine C++ Klasse in einer DLL unter VB 6 verfügbar mache. Google lieferte wenig Hilfe.</p>
<p>Problem: Es soll in C++ eine DLL geschrieben werden die auch aus VB herraus aufrufbar ist<br />
Allerdings scheitert es daran VB die C++ Klasse bekannt zu machen.<br />
Ich hab gelesen das ich um das zu umgehen Wrapperfunktionen schreiben darf.</p>
<p>Danke schonmal im voraus für Hilfe <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/1268405</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1268405</guid><dc:creator><![CDATA[DeathCrow]]></dc:creator><pubDate>Wed, 18 Apr 2007 13:26:55 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Klasse als DLL unter VB verfügbar machen on Wed, 18 Apr 2007 17:06:49 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile-var-mode-is-viewprofile-and-u-is-403.html" rel="nofollow">HumeSikkins</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-15.html" rel="nofollow">C++</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-4.html" rel="nofollow">WinAPI</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39405.html" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1268654</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1268654</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Wed, 18 Apr 2007 17:06:49 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Klasse als DLL unter VB verfügbar machen on Fri, 20 Apr 2007 08:59:44 GMT]]></title><description><![CDATA[<p>Hi,<br />
so weit ich weiss kannst du keine in eine DLL ausgelagerten C++-Klassen in einem VB-Programm aufrufen (das geht gerade einmal bei C++ Programmen untereinander und dem selben Compiler).<br />
Das Problem ist, dass die interne Namensgebung bei thiscall (die Aufrufkonvention bei Methoden) nicht standardisiert ist.<br />
Im allgemeinen exportiert man C-Funktionen. Wenn du intern in der DLL eine Klasse verwendest musst du die von dir bereits erwaehnten Wrapperfunktionen schreiben, welche quasi eine Methode der Klasse als C-Funktion kapseln.</p>
<p>Edit:<br />
Noch ein bisschen mehr dazu:</p>
<pre><code class="language-cpp">class Foo
{
public:
  int MacheWas(int i); // die Funktion soll genutzt werden
};
</code></pre>
<p>Beispiel fuer eine Wrapperfunktion:</p>
<pre><code class="language-cpp">// irgendwo liegt ein (fuer die DLL) globales Objekt der Klasse Foo namens foo

extern &quot;C&quot; /*noetig bei C++ Compilern)*/ int __declspec(dllexport) /* zum Exportieren*/ MacheWas(int i)
{
  return foo.MacheWas(i);
}
</code></pre>
<p>Das mal als (ungetestetes) Beispielschnippsel.</p>
<p>Edit2:<br />
Und das ganze muesste sich unter VB dann so bekanntmachen lassen (bin kein VB Spezi, hatte damit noch nie was am Hut^^):</p>
<pre><code>Declare Function MacheWas Lib &quot;DLLName.dll&quot; (ByVal i As Integer) As Integer
</code></pre>
<p>Gruss,<br />
DeSoVoDaMu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1269810</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1269810</guid><dc:creator><![CDATA[DeSoVoDaMu]]></dc:creator><pubDate>Fri, 20 Apr 2007 08:59:44 GMT</pubDate></item></channel></rss>