<?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 erzeugen mit Visual C++ und in einem anderen Projekt ansprechen]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich hab eine dlltest.dll mit folgender Header- und Sourcecodedatei erstellt.</p>
<p>Header:</p>
<pre><code class="language-cpp">/* &quot;dlltest.h&quot; */
#ifndef DLLTEST_H
#define DLLTEST_H

class __declspec(dllexport) Test
{
private:
	int m_iWert; 
protected:
	void ChangeValue(void);
public:
	Test();
	~Test();
	void Set(int Wert);
	int Get(void);
};
#endif // DLLTEST_H
</code></pre>
<p>Quellcodedatei:</p>
<pre><code class="language-cpp">/* &quot;dlltest.cpp&quot; */

#include &quot;dlltest.h&quot;

Test::Test() : m_iWert(0)
{
}

Test::~Test()
{
}

int Test::Get()
{
	return m_iWert;
}

void Test::Set(int wert)
{
	m_iWert = wert;
}
</code></pre>
<p>Dann hab ich in Visual C++ ein neues Projekt mit hauptprogramm.cpp angelegt. Im gleichen Ordner befinden sich die Dateien dlltest.h und dlltest.dll.</p>
<p>Das ist die main-Funktion 'hauptprogramm.cpp':</p>
<pre><code class="language-cpp">#include &lt;iostream.h&gt;
#include &lt;windows.h&gt;
#include &quot;dlltest.h&quot;

int main()
{
	Test t;
	t.Set(43);
	cout&lt;&lt;&quot;Wert: &quot;&lt;&lt;t.Get()&lt;&lt;endl;
	MessageBox(NULL,&quot;Programm beendet.&quot;,&quot;Notation&quot;,MB_OK);
	return 0;
}
</code></pre>
<p>Jetzt bekomme ich folgende Fehlermeldung:<br />
Linker-Vorgang läuft...<br />
Bibliothek Debug/hauptprogramm.lib und Objekt Debug/hauptprogramm.exp wird erstellt<br />
hauptprogramm.obj : error LNK2001: Nichtaufgeloestes externes Symbol &quot;public: __thiscall Test::~Test(void)&quot; (??1Test@@QAE@XZ)<br />
hauptprogramm.obj : error LNK2001: Nichtaufgeloestes externes Symbol &quot;public: int __thiscall Test::Get(void)&quot; (?Get@Test@@QAEHXZ)<br />
hauptprogramm.obj : error LNK2001: Nichtaufgeloestes externes Symbol &quot;public: void __thiscall Test::Set(int)&quot; (?Set@Test@@QAEXH@Z)<br />
hauptprogramm.obj : error LNK2001: Nichtaufgeloestes externes Symbol &quot;public: __thiscall Test::Test(void)&quot; (??0Test@@QAE@XZ)<br />
Debug/hauptprogramm.exe : fatal error LNK1120: 4 unaufgeloeste externe Verweise<br />
Fehler beim Ausführen von link.exe.</p>
<p>WARUM???????????????? <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>
]]></description><link>https://www.c-plusplus.net/forum/topic/53235/dll-erzeugen-mit-visual-c-und-in-einem-anderen-projekt-ansprechen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 01 Jun 2026 06:22:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/53235.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 27 Oct 2003 14:02:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to DLL erzeugen mit Visual C++ und in einem anderen Projekt ansprechen on Mon, 27 Oct 2003 14:02:48 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich hab eine dlltest.dll mit folgender Header- und Sourcecodedatei erstellt.</p>
<p>Header:</p>
<pre><code class="language-cpp">/* &quot;dlltest.h&quot; */
#ifndef DLLTEST_H
#define DLLTEST_H

class __declspec(dllexport) Test
{
private:
	int m_iWert; 
protected:
	void ChangeValue(void);
public:
	Test();
	~Test();
	void Set(int Wert);
	int Get(void);
};
#endif // DLLTEST_H
</code></pre>
<p>Quellcodedatei:</p>
<pre><code class="language-cpp">/* &quot;dlltest.cpp&quot; */

#include &quot;dlltest.h&quot;

Test::Test() : m_iWert(0)
{
}

Test::~Test()
{
}

int Test::Get()
{
	return m_iWert;
}

void Test::Set(int wert)
{
	m_iWert = wert;
}
</code></pre>
<p>Dann hab ich in Visual C++ ein neues Projekt mit hauptprogramm.cpp angelegt. Im gleichen Ordner befinden sich die Dateien dlltest.h und dlltest.dll.</p>
<p>Das ist die main-Funktion 'hauptprogramm.cpp':</p>
<pre><code class="language-cpp">#include &lt;iostream.h&gt;
#include &lt;windows.h&gt;
#include &quot;dlltest.h&quot;

int main()
{
	Test t;
	t.Set(43);
	cout&lt;&lt;&quot;Wert: &quot;&lt;&lt;t.Get()&lt;&lt;endl;
	MessageBox(NULL,&quot;Programm beendet.&quot;,&quot;Notation&quot;,MB_OK);
	return 0;
}
</code></pre>
<p>Jetzt bekomme ich folgende Fehlermeldung:<br />
Linker-Vorgang läuft...<br />
Bibliothek Debug/hauptprogramm.lib und Objekt Debug/hauptprogramm.exp wird erstellt<br />
hauptprogramm.obj : error LNK2001: Nichtaufgeloestes externes Symbol &quot;public: __thiscall Test::~Test(void)&quot; (??1Test@@QAE@XZ)<br />
hauptprogramm.obj : error LNK2001: Nichtaufgeloestes externes Symbol &quot;public: int __thiscall Test::Get(void)&quot; (?Get@Test@@QAEHXZ)<br />
hauptprogramm.obj : error LNK2001: Nichtaufgeloestes externes Symbol &quot;public: void __thiscall Test::Set(int)&quot; (?Set@Test@@QAEXH@Z)<br />
hauptprogramm.obj : error LNK2001: Nichtaufgeloestes externes Symbol &quot;public: __thiscall Test::Test(void)&quot; (??0Test@@QAE@XZ)<br />
Debug/hauptprogramm.exe : fatal error LNK1120: 4 unaufgeloeste externe Verweise<br />
Fehler beim Ausführen von link.exe.</p>
<p>WARUM???????????????? <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>
]]></description><link>https://www.c-plusplus.net/forum/post/380603</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/380603</guid><dc:creator><![CDATA[ga_un]]></dc:creator><pubDate>Mon, 27 Oct 2003 14:02:48 GMT</pubDate></item><item><title><![CDATA[Reply to DLL erzeugen mit Visual C++ und in einem anderen Projekt ansprechen on Mon, 27 Oct 2003 14:17:26 GMT]]></title><description><![CDATA[<p>Die dlltest.h muss wahrscheinlich nicht mal im selben Ordner des neuen Projektes vorhanden sein, schließlich steht ja in der dlltest.dll schon alles drin, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/380613</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/380613</guid><dc:creator><![CDATA[ga_un]]></dc:creator><pubDate>Mon, 27 Oct 2003 14:17:26 GMT</pubDate></item><item><title><![CDATA[Reply to DLL erzeugen mit Visual C++ und in einem anderen Projekt ansprechen on Mon, 27 Oct 2003 14:34:02 GMT]]></title><description><![CDATA[<p>Unter Projekt-&gt; Einstellungen -&gt; Linker musst Du noch<br />
dlltest.lib als zusätzlichen Bibliotheksmodul mit angegeben.<br />
Die Datei dlltest.lib sollte sich dann natürlch auch in einem Pfad befinden, den der Linker findet. (Entweder in das neue Projekt kopieren, oder zusäzlichen Bibliothekspfad für Linker mit angegeben.)</p>
<p>Ich hoffe, das hilft.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/380626</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/380626</guid><dc:creator><![CDATA[DJohn]]></dc:creator><pubDate>Mon, 27 Oct 2003 14:34:02 GMT</pubDate></item><item><title><![CDATA[Reply to DLL erzeugen mit Visual C++ und in einem anderen Projekt ansprechen on Mon, 27 Oct 2003 14:46:46 GMT]]></title><description><![CDATA[<p>Super jetzt funktioniert's!!!<br />
Muss die dlltest.h nun wirklich im gleichen Ordner sein? Die kann ich nicht weg lassen, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/380646</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/380646</guid><dc:creator><![CDATA[ga_un]]></dc:creator><pubDate>Mon, 27 Oct 2003 14:46:46 GMT</pubDate></item><item><title><![CDATA[Reply to DLL erzeugen mit Visual C++ und in einem anderen Projekt ansprechen on Mon, 27 Oct 2003 14:55:02 GMT]]></title><description><![CDATA[<p>Du brauchst auf jeden Fall die Klassendefinition von Test, dazu machst Du ja Dein include &quot;dlltest.h&quot;. Die Datei selbst muß Du aber nicht unbedingt in deinen Projektordner kopieren. Es geht auch, wenn Du unter<br />
Einstellungen -&gt; C/C++ -&gt; Kategorie Präprozessor zusätzliche Includeverzeichnisse<br />
einfach den Pfad zur dlltest.h angibst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/380651</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/380651</guid><dc:creator><![CDATA[DJohn]]></dc:creator><pubDate>Mon, 27 Oct 2003 14:55:02 GMT</pubDate></item><item><title><![CDATA[Reply to DLL erzeugen mit Visual C++ und in einem anderen Projekt ansprechen on Mon, 27 Oct 2003 14:57:18 GMT]]></title><description><![CDATA[<p>du hast mir sehr geholfen ... danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/380654</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/380654</guid><dc:creator><![CDATA[ga_un]]></dc:creator><pubDate>Mon, 27 Oct 2003 14:57:18 GMT</pubDate></item></channel></rss>