<?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[DLL Exports ohne zusätzliche Namenattribute]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich häng gerade wieder an einem kleinen Problemchen.</p>
<p>Ich hab eine DLL in C++ geschrieben, deren Funktionen ich mittels</p>
<pre><code class="language-cpp">#define EXPORT extern &quot;C&quot; __declspec(dllexport)

EXPORT int init(void);
</code></pre>
<p>exportiere. (VS 2005, kein clr, kein atl, kein mfc)</p>
<p>Nun möchte ich die DLL in Delphi einbinden, und brauche dazu ja auch die Prototypen. Also in Delphi die Prototypen geschrieben und direkt mittels <strong>external</strong> an die DLL gebunden. Nun schmeißt mir Delphi nen Fehler und ich hab mal mittels impdef.exe in die Exports der dll geschaut. Da wird mir folgendes gelistet:</p>
<pre><code>LIBRARY     MY_DLL.DLL

EXPORTS
    _init@0                =_init                   @6
</code></pre>
<p>Soweit so gut. Gebe ich nun in meiner Delphi Applikation den namen _init@0 mit, so funktioniert das einbinden der DLL.</p>
<p>Das möchte ich aber nicht, da ich glaube, dass sie dieser Name noch verändern kann, wenn ich die DLL erweitere.</p>
<p>Wie muß ich denn die Funktion in der DLL exportieren dass ich einen Export bekomme, der wie folgt aussieht:</p>
<pre><code>LIBRARY     MY_DLL.DLL

EXPORTS
    init           @6
</code></pre>
<p>Danke für die Hilfe und Grüße<br />
Daimonion</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/239243/dll-exports-ohne-zusätzliche-namenattribute</link><generator>RSS for Node</generator><lastBuildDate>Mon, 06 Apr 2026 14:31:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/239243.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 21 Apr 2009 10:35:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to DLL Exports ohne zusätzliche Namenattribute on Tue, 21 Apr 2009 10:35:43 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich häng gerade wieder an einem kleinen Problemchen.</p>
<p>Ich hab eine DLL in C++ geschrieben, deren Funktionen ich mittels</p>
<pre><code class="language-cpp">#define EXPORT extern &quot;C&quot; __declspec(dllexport)

EXPORT int init(void);
</code></pre>
<p>exportiere. (VS 2005, kein clr, kein atl, kein mfc)</p>
<p>Nun möchte ich die DLL in Delphi einbinden, und brauche dazu ja auch die Prototypen. Also in Delphi die Prototypen geschrieben und direkt mittels <strong>external</strong> an die DLL gebunden. Nun schmeißt mir Delphi nen Fehler und ich hab mal mittels impdef.exe in die Exports der dll geschaut. Da wird mir folgendes gelistet:</p>
<pre><code>LIBRARY     MY_DLL.DLL

EXPORTS
    _init@0                =_init                   @6
</code></pre>
<p>Soweit so gut. Gebe ich nun in meiner Delphi Applikation den namen _init@0 mit, so funktioniert das einbinden der DLL.</p>
<p>Das möchte ich aber nicht, da ich glaube, dass sie dieser Name noch verändern kann, wenn ich die DLL erweitere.</p>
<p>Wie muß ich denn die Funktion in der DLL exportieren dass ich einen Export bekomme, der wie folgt aussieht:</p>
<pre><code>LIBRARY     MY_DLL.DLL

EXPORTS
    init           @6
</code></pre>
<p>Danke für die Hilfe und Grüße<br />
Daimonion</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1699060</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1699060</guid><dc:creator><![CDATA[daimonion]]></dc:creator><pubDate>Tue, 21 Apr 2009 10:35:43 GMT</pubDate></item><item><title><![CDATA[Reply to DLL Exports ohne zusätzliche Namenattribute on Tue, 21 Apr 2009 13:12:01 GMT]]></title><description><![CDATA[<p>Hallo, ich habe immer benutzt</p>
<pre><code class="language-cpp">#pragma comment (linker, &quot;/EXPORT:PluginMain=_PluginMain@4&quot;)
</code></pre>
<p><a href="http://support.microsoft.com/kb/131313" rel="nofollow">http://support.microsoft.com/kb/131313</a> (see Exporting PASCAL-Like Symbols in 32-bit DLLs)</p>
<p>Mit #pragma brauchst du keine dllexport's definieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1699144</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1699144</guid><dc:creator><![CDATA[sapero]]></dc:creator><pubDate>Tue, 21 Apr 2009 13:12:01 GMT</pubDate></item><item><title><![CDATA[Reply to DLL Exports ohne zusätzliche Namenattribute on Tue, 21 Apr 2009 16:14:00 GMT]]></title><description><![CDATA[<p>Danke für den Link. Ich werde den Artikel mal durcharbeiten und dann berichten. Ebenso werd ich deine Variante mal probieren.</p>
<p>Danke dir dafür!</p>
<p>Grüße<br />
Daimonion</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1699253</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1699253</guid><dc:creator><![CDATA[daimonion]]></dc:creator><pubDate>Tue, 21 Apr 2009 16:14:00 GMT</pubDate></item><item><title><![CDATA[Reply to DLL Exports ohne zusätzliche Namenattribute on Fri, 24 Apr 2009 11:49:43 GMT]]></title><description><![CDATA[<p>Also ich hab mir jetzt mal die KB Artikel durchgelesen und versteh jetzt was die einzelnen Felder bedeuten. Das Schema, wie die exportierten Namen der einzelnen Funktionen gebildet werden, ist mir nun auch klar.</p>
<p>Da sich aufgrund des Schemas an den Funktionsnamen nichts ändern wird, kann ich die auch getrost so lassen und bei Pascalsprachen auf Aliase setzen.</p>
<p>Danke für die Hilfe und Grüße<br />
Daimonion</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1700681</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1700681</guid><dc:creator><![CDATA[daimonion]]></dc:creator><pubDate>Fri, 24 Apr 2009 11:49:43 GMT</pubDate></item></channel></rss>