<?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[Der Linker findet die Funktion in *.lib nicht !!]]></title><description><![CDATA[<p>Zurzeit programmiere ich in <strong>Microsoft Visual C++ 6.0</strong></p>
<p>ich will eine DLL in C erstellen die aber auf die Funktionen von einer einderen in C++ erstellten DLL zugreifen soll.</p>
<p>Z.B ich will auf eine Funktion aus der C++ DLL (ML5DLL.dll) zugreifen.</p>
<pre><code>void InitDynamicData(ML5DataDynamic* Data)
</code></pre>
<p>Dann erhalte ich immer wieder folgende Fehlermeldung:</p>
<pre><code>DLLAdapterNeu.obj : error LNK2001: Nichtaufgeloestes externes Symbol _InitDynamicData
</code></pre>
<p>Nun habe ich, meiner Meinung nach, den Übeltäter gefunden. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /><br />
In der ML5DLL.lib steht anstatt</p>
<pre><code>InitDynamicData(ML5DataDynamic)
</code></pre>
<p>folgendes</p>
<pre><code>NUL?InitDynamicData@@YAXPAUML5DataDynamic@@@ZNUL__imp_?InitDynamicData@@YAXPAUML5DataDynamic@@@ZNUL
</code></pre>
<p>So wie ich verstehe sucht der linker nach der Funktion in lib-Datei und findet die wegen der Zusatzzeichen nicht. Oder ?! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p><strong>Was soll man machen damit die Zusatzzeichen in .lib-Datei nicht erscheinen oder damit Linker die Funktionen finden kann ????</strong> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Danke im Voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/269858/der-linker-findet-die-funktion-in-lib-nicht</link><generator>RSS for Node</generator><lastBuildDate>Sun, 30 Aug 2026 22:17:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/269858.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 02 Jul 2010 09:00:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Der Linker findet die Funktion in *.lib nicht !! on Fri, 02 Jul 2010 09:03:36 GMT]]></title><description><![CDATA[<p>Zurzeit programmiere ich in <strong>Microsoft Visual C++ 6.0</strong></p>
<p>ich will eine DLL in C erstellen die aber auf die Funktionen von einer einderen in C++ erstellten DLL zugreifen soll.</p>
<p>Z.B ich will auf eine Funktion aus der C++ DLL (ML5DLL.dll) zugreifen.</p>
<pre><code>void InitDynamicData(ML5DataDynamic* Data)
</code></pre>
<p>Dann erhalte ich immer wieder folgende Fehlermeldung:</p>
<pre><code>DLLAdapterNeu.obj : error LNK2001: Nichtaufgeloestes externes Symbol _InitDynamicData
</code></pre>
<p>Nun habe ich, meiner Meinung nach, den Übeltäter gefunden. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /><br />
In der ML5DLL.lib steht anstatt</p>
<pre><code>InitDynamicData(ML5DataDynamic)
</code></pre>
<p>folgendes</p>
<pre><code>NUL?InitDynamicData@@YAXPAUML5DataDynamic@@@ZNUL__imp_?InitDynamicData@@YAXPAUML5DataDynamic@@@ZNUL
</code></pre>
<p>So wie ich verstehe sucht der linker nach der Funktion in lib-Datei und findet die wegen der Zusatzzeichen nicht. Oder ?! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p><strong>Was soll man machen damit die Zusatzzeichen in .lib-Datei nicht erscheinen oder damit Linker die Funktionen finden kann ????</strong> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Danke im Voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1920310</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1920310</guid><dc:creator><![CDATA[rshp]]></dc:creator><pubDate>Fri, 02 Jul 2010 09:03:36 GMT</pubDate></item><item><title><![CDATA[Reply to Der Linker findet die Funktion in *.lib nicht !! on Fri, 02 Jul 2010 09:31:16 GMT]]></title><description><![CDATA[<p>Du musst der Funktionsdeklaration extern &quot;C&quot; voranstellen:</p>
<pre><code class="language-cpp">extern &quot;C&quot; void meineFunktion();
</code></pre>
<p>Du kannst auch einen extern &quot;C&quot; Block verwenden (geschweifte Klammern), in dem sämtliche exportierten Funktionen aufgeführt sind.</p>
<p>EDIT: Ach ja, und exportieren musst du sie natürlich auch: <a href="http://msdn.microsoft.com/en-us/library/3y1sfaz2.aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/3y1sfaz2.aspx</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1920322</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1920322</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 02 Jul 2010 09:31:16 GMT</pubDate></item><item><title><![CDATA[Reply to Der Linker findet die Funktion in *.lib nicht !! on Fri, 02 Jul 2010 09:44:21 GMT]]></title><description><![CDATA[<p>Ich weiß nicht ob du hier auf das Problem stößt aber wenn du folgende Konstellation hast:</p>
<p>Programm nutzt DLL<br />
DLL nutzt LIB<br />
DLL linkt LIB nicht<br />
Programm linkt LIB</p>
<p>Dann heißt das noch lange nicht das die Funktionen aus der LIB in dem Programm drin sind, denn das Programm linkt nur, was es auch benutzt. So wird das Programm abstürzen sobald die DLL die Funktionen nutzen möchte. Dann entweder die LIB in die DLL linken oder dem Linker sagen das er alles, egal ob genutzt oder nicht, von der LIB in das Programm linken soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1920329</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1920329</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Fri, 02 Jul 2010 09:44:21 GMT</pubDate></item></channel></rss>