<?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[Linker Problem]]></title><description><![CDATA[<p>Hallo!</p>
<p>Es handelt sich um folgendes Problem:<br />
Fehlermeldung:</p>
<pre><code class="language-cpp">main.obj : error LNK2001: Nichtaufgeloestes externes Symbol &quot; int bingo(int,unsigned short)&quot; (?bingo@@YAHHG@Z)
</code></pre>
<p>Ich arbeite mit MS Visual C++ Version 6.0 und habe die entsprechende *.lib in das Projekt über Projekt-&gt;dem Projekt hinzufügen-&gt;Dateien: hinzugefügt</p>
<p>In einer Headerdatei habe ich folgendes deklariert:</p>
<pre><code class="language-cpp">extern int _cdecl _bingo(int bla,unsigned short blub);
</code></pre>
<p>Aufruf in *.cpp Datei:</p>
<pre><code class="language-cpp">errorvar = _bingo(intvar,intvar2);
</code></pre>
<p>Die Frage ist:<br />
Warum findet er die &quot;Symbole&quot;, die aus der *.lib geladen werden sollten, nicht???</p>
<p>gruß<br />
djabber</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/196081/linker-problem</link><generator>RSS for Node</generator><lastBuildDate>Sat, 27 Jun 2026 18:31:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/196081.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 25 Oct 2007 09:38:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Linker Problem on Thu, 25 Oct 2007 09:38:42 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Es handelt sich um folgendes Problem:<br />
Fehlermeldung:</p>
<pre><code class="language-cpp">main.obj : error LNK2001: Nichtaufgeloestes externes Symbol &quot; int bingo(int,unsigned short)&quot; (?bingo@@YAHHG@Z)
</code></pre>
<p>Ich arbeite mit MS Visual C++ Version 6.0 und habe die entsprechende *.lib in das Projekt über Projekt-&gt;dem Projekt hinzufügen-&gt;Dateien: hinzugefügt</p>
<p>In einer Headerdatei habe ich folgendes deklariert:</p>
<pre><code class="language-cpp">extern int _cdecl _bingo(int bla,unsigned short blub);
</code></pre>
<p>Aufruf in *.cpp Datei:</p>
<pre><code class="language-cpp">errorvar = _bingo(intvar,intvar2);
</code></pre>
<p>Die Frage ist:<br />
Warum findet er die &quot;Symbole&quot;, die aus der *.lib geladen werden sollten, nicht???</p>
<p>gruß<br />
djabber</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1391703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1391703</guid><dc:creator><![CDATA[djabber]]></dc:creator><pubDate>Thu, 25 Oct 2007 09:38:42 GMT</pubDate></item><item><title><![CDATA[Reply to Linker Problem on Thu, 25 Oct 2007 09:42:20 GMT]]></title><description><![CDATA[<p>Und wo ist die dazugehörige Funktionsdefinition (Rumpf)?</p>
<p>PS: Es gibt übrigens einen Unterschied zwischen &quot;bingo(...)&quot; und &quot;_bingo(...)&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1391706</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1391706</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 25 Oct 2007 09:42:20 GMT</pubDate></item><item><title><![CDATA[Reply to Linker Problem on Thu, 25 Oct 2007 09:49:37 GMT]]></title><description><![CDATA[<p>Öhm ja...</p>
<p>Also die Funktiondefinition ist in der *.lib soweit ich das verstanden habe...</p>
<p>und was meinst du bitte mit:</p>
<blockquote>
<p>PS: Es gibt übrigens einen Unterschied zwischen &quot;bingo(...)&quot; und &quot;_bingo(...)&quot;</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1391707</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1391707</guid><dc:creator><![CDATA[djabber]]></dc:creator><pubDate>Thu, 25 Oct 2007 09:49:37 GMT</pubDate></item><item><title><![CDATA[Reply to Linker Problem on Thu, 25 Oct 2007 09:59:42 GMT]]></title><description><![CDATA[<p>djabber schrieb:</p>
<blockquote>
<p>Öhm ja...</p>
<p>Also die Funktiondefinition ist in der *.lib soweit ich das verstanden habe...</p>
</blockquote>
<p>Na offensichtlich nicht - sonst hätte er sie ja dort gefunden.</p>
<blockquote>
<p>und was meinst du bitte mit:</p>
<blockquote>
<p>PS: Es gibt übrigens einen Unterschied zwischen &quot;bingo(...)&quot; und &quot;_bingo(...)&quot;</p>
</blockquote>
</blockquote>
<p>Laut Fehlermeldung vermisst er eine Funktion &quot;bingo()&quot;, im übrigen Problemcode nennst du die Funktion dann &quot;_bingo()&quot; - das sind zwei völlig verschiedene Funktionen.</p>
<p>*nachdenkt* Vielleicht hast du auch nur eine andere Aufrufkonvention verwendet als im Original - der erweiterte Name (&quot;?bingo@@YAHHG@Z&quot;) hängt auch davon ab, welche Aufrufkonvention (und welchen Compiler) du verwendet hast. Was steht denn im Header der verwendeten Library.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1391712</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1391712</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 25 Oct 2007 09:59:42 GMT</pubDate></item><item><title><![CDATA[Reply to Linker Problem on Thu, 25 Oct 2007 10:15:34 GMT]]></title><description><![CDATA[<blockquote>
<p>Laut Fehlermeldung vermisst er eine Funktion &quot;bingo()&quot;, im übrigen Problemcode nennst du die Funktion dann &quot;_bingo()&quot; - das sind zwei völlig verschiedene Funktionen.</p>
</blockquote>
<p>Wie schon geschrieben habe muß man die Funktionen, laut der Funktionsbeschreibung vom Hersteller (da kommt auch die *.lib her), mit &quot;_&quot; schreiben.</p>
<p>Warum der Linker allerdings eine Funktion ohne &quot;_&quot; anmäkelt verstehe ich nicht...</p>
<blockquote>
<p>*nachdenkt* Vielleicht hast du auch nur eine andere Aufrufkonvention verwendet als im Original - der erweiterte Name (&quot;?bingo@@YAHHG@Z&quot;) hängt auch davon ab, welche Aufrufkonvention (und welchen Compiler) du verwendet hast. Was steht denn im Header der verwendeten Library.</p>
</blockquote>
<p>Das Problem ist, dass ich auf die Datei aus der die *.lib erstellt wurde keinen Zugriff habe und somit leider den Header nicht einsehen kann...</p>
<p>Anmerkung:<br />
Wenn ich nur eine einfaches Projekt erstelle mit:<br />
main.cpp<br />
*.h<br />
*.lib<br />
und dann auf die Funktionen zugreife via &quot;_funktion()&quot; gehts...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1391717</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1391717</guid><dc:creator><![CDATA[djabber]]></dc:creator><pubDate>Thu, 25 Oct 2007 10:15:34 GMT</pubDate></item><item><title><![CDATA[Reply to Linker Problem on Thu, 25 Oct 2007 10:19:24 GMT]]></title><description><![CDATA[<p>Habe grade das hier gefunden, wobei ich da aber nicht steht, wie man dass beheben kann..<br />
<a href="http://support.microsoft.com/kb/248883/de" rel="nofollow">http://support.microsoft.com/kb/248883/de</a></p>
<blockquote>
<p>Der LNK2001-Fehler, der in dem Symptomabschnitt beschrieben wird, tritt auf, da die Compiler für das konstante Arrayvariable für Visual C++ 6.0 und Visual C++ 5.0 andere ergänzte Namen generieren. Wenn Sie versuchen, folgend zu verknüpfen, tritt der Fehler auf<br />
• Ein konstanter Matrixverweis auf einer konstanten Matrixdefinition in einem Visual C++ 5.0 DLL oder einer statischen Visual C++ 5.0-Bibliothek in einem VISUAL C++ 6.0-EXE<br />
• Ein konstanter Matrixverweis in einem VISUAL C++ 5.0-EXE zu der konstanten Matrixdefinition in einem Visual C++ 6.0 DLL oder einer statischen Visual C++ 6.0-Bibliothek<br />
• Ein konstanter Matrixverweis in einem EXE von Visual C++ zu einer konstanten Matrixdefinition in einem Visual C++ 5.0 DLL oder einer statischen Visual C++ 5.0-Bibliothek. (Ergänzte Namen, die von dem Compiler für konstante Arrayvariable von Visual C++ generiert werden, sind identische dem Visual C++ 6.0-Compiler dawie).</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1391718</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1391718</guid><dc:creator><![CDATA[djabber]]></dc:creator><pubDate>Thu, 25 Oct 2007 10:19:24 GMT</pubDate></item><item><title><![CDATA[Reply to Linker Problem on Thu, 25 Oct 2007 10:31:02 GMT]]></title><description><![CDATA[<p>Dann lass dir mal vom Hersteller einen vernünftigen Header liefern. Vielleicht reicht es auch schon aus, das &quot;_cdecl&quot; bei der Deklaration wegzulassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1391730</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1391730</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 25 Oct 2007 10:31:02 GMT</pubDate></item><item><title><![CDATA[Reply to Linker Problem on Thu, 25 Oct 2007 10:51:18 GMT]]></title><description><![CDATA[<p>Danke für die schnellen Antworten!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1391748</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1391748</guid><dc:creator><![CDATA[djabber]]></dc:creator><pubDate>Thu, 25 Oct 2007 10:51:18 GMT</pubDate></item><item><title><![CDATA[Reply to Linker Problem on Mon, 29 Oct 2007 09:16:52 GMT]]></title><description><![CDATA[<p>Die Lösung des Problems lag nicht am compiler sondern am Präprozessor.</p>
<p>Der hatte die Vorgabe alles STRICT zu behandeln...^^</p>
<p>Ergo hat er den Code, der in der *lib stand nicht akzeptiert, da dieser in C geschrieben war...und das Programm in C++</p>
<p>Das Strict in der Präprozessoranweisung war durch WxWidges gefordert. (durch den Vorprogrammierer der Anwendung eingefügt)</p>
<p>Ich hoffe vielleicht kann dies irgendjem. vielleicht auch mal helfen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Gruß<br />
djabber</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1393974</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1393974</guid><dc:creator><![CDATA[djabber]]></dc:creator><pubDate>Mon, 29 Oct 2007 09:16:52 GMT</pubDate></item></channel></rss>