<?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[Erstellte DLL functioniert unter VB  (Fehler 453)]]></title><description><![CDATA[<p>Hallo,<br />
ich muss für ein älteres Prüfprogramm eine dll in C++(VS6) schreiben, welche einige nichtunterstützte Datentypen und Strukturen in andere übersetzt. Da ich bis jetzt noch keine Erfahrungen in C++ habe, habe ich unter anderem das Beispiel <a href="http://de.wikipedia.org/wiki/Dynamic_Link_Library" rel="nofollow">http://de.wikipedia.org/wiki/Dynamic_Link_Library</a> ausprobiert. Als Prüfprogrammersatz dient mir VB und die Declare-Anweisung.<br />
Hier der Code für die DLL.</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;

#if defined(_MSC_VER)
#define DLL __declspec(dllexport)
#else
#define DLL
#endif
// nur unter MS VC das Symbol DLL definieren unter z.B. Linux wird DLL ignoriert

// Die Funktion, die anderen Programmen zur Verfügung gestellt werden soll
// (in diesem Beispiel: Addieren zweier Zahlen)
DLL
double AddNumbers (double a, double b) {
        return a + b;
}
</code></pre>
<p>Und hier der Code für die VB.</p>
<pre><code>Option Explicit
Declare Function AddNumbers Lib &quot;Example.dll&quot; (ByVal a As Double, ByVal b As Double) As Double

Sub Main()
Dim Result As Double
    Result = AddNumbers(1, 2)
    Debug.Print &quot;Das Ergebnis ist: &quot; &amp; Result
End Sub
</code></pre>
<p>Die DLL wurde fehlerfrei erstellt.<br />
Nach dem Aufruf in VB kommt die Fehlermeldung &quot;Angegebene DLL-Funktion nicht gefunden (Fehler 453)&quot;. Sieht man sich mit der Schnellansicht die Exporttabelle der dll an, so ist der Exportname &quot;?AddNumbers@@YANNN@Z&quot;. Was mache ich falsch?</p>
<p>MfG PierreOne</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/160905/erstellte-dll-functioniert-unter-vb-fehler-453</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Jul 2026 22:56:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/160905.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 01 Oct 2006 05:41:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Erstellte DLL functioniert unter VB  (Fehler 453) on Sun, 01 Oct 2006 05:41:53 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich muss für ein älteres Prüfprogramm eine dll in C++(VS6) schreiben, welche einige nichtunterstützte Datentypen und Strukturen in andere übersetzt. Da ich bis jetzt noch keine Erfahrungen in C++ habe, habe ich unter anderem das Beispiel <a href="http://de.wikipedia.org/wiki/Dynamic_Link_Library" rel="nofollow">http://de.wikipedia.org/wiki/Dynamic_Link_Library</a> ausprobiert. Als Prüfprogrammersatz dient mir VB und die Declare-Anweisung.<br />
Hier der Code für die DLL.</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;

#if defined(_MSC_VER)
#define DLL __declspec(dllexport)
#else
#define DLL
#endif
// nur unter MS VC das Symbol DLL definieren unter z.B. Linux wird DLL ignoriert

// Die Funktion, die anderen Programmen zur Verfügung gestellt werden soll
// (in diesem Beispiel: Addieren zweier Zahlen)
DLL
double AddNumbers (double a, double b) {
        return a + b;
}
</code></pre>
<p>Und hier der Code für die VB.</p>
<pre><code>Option Explicit
Declare Function AddNumbers Lib &quot;Example.dll&quot; (ByVal a As Double, ByVal b As Double) As Double

Sub Main()
Dim Result As Double
    Result = AddNumbers(1, 2)
    Debug.Print &quot;Das Ergebnis ist: &quot; &amp; Result
End Sub
</code></pre>
<p>Die DLL wurde fehlerfrei erstellt.<br />
Nach dem Aufruf in VB kommt die Fehlermeldung &quot;Angegebene DLL-Funktion nicht gefunden (Fehler 453)&quot;. Sieht man sich mit der Schnellansicht die Exporttabelle der dll an, so ist der Exportname &quot;?AddNumbers@@YANNN@Z&quot;. Was mache ich falsch?</p>
<p>MfG PierreOne</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147271</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147271</guid><dc:creator><![CDATA[PierreOne]]></dc:creator><pubDate>Sun, 01 Oct 2006 05:41:53 GMT</pubDate></item><item><title><![CDATA[Reply to Erstellte DLL functioniert unter VB  (Fehler 453) on Sun, 01 Oct 2006 06:18:00 GMT]]></title><description><![CDATA[<p>1. Du musst immer &quot;stdcall&quot; als Aufrufkonvention verwenden (VB6 kann nix anderes)!</p>
<pre><code class="language-cpp">double __stdcall AddNumbers(double a, double b)
</code></pre>
<p>2. Bzgl. dem Namen: das einfachste ist eine DEF-Datei zu verwenden und dort den Namen explizit zu exportieren; dann wird er auch mit dem Namen exportiert den Du verwendet hast.<br />
Diese DEF-Datei dann in den Projekteinstellungen unter &quot;Linker|Module Definition File&quot; eintragen.</p>
<blockquote>
<p>LIBRARY &quot;NameOf.DLL&quot;</p>
<p>EXPORTS<br />
AddNumbers</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1147272</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147272</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Sun, 01 Oct 2006 06:18:00 GMT</pubDate></item><item><title><![CDATA[Reply to Erstellte DLL functioniert unter VB  (Fehler 453) on Sun, 01 Oct 2006 11:46:27 GMT]]></title><description><![CDATA[<p>Vielen Dank,</p>
<p>jetzt funktioniert Alles. <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>MfG PierreOne</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147351</guid><dc:creator><![CDATA[PierreOne]]></dc:creator><pubDate>Sun, 01 Oct 2006 11:46:27 GMT</pubDate></item></channel></rss>