<?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[Anfängerproblem: Linker Error: LNK2005]]></title><description><![CDATA[<p>Hi</p>
<p>also ich würde gerne noch einmal diesen 1A support hier in anspruch nehmen. Und zwar bin ihc im Moment daran mich ein bissl mit C++ zu beschäftigen und betreib da ein bissl learing by doing. Im moment bin ihc an einem kleinen Programm mit dem ich mich zu einer Webseite verbinden möchte und ein paar sachen mit der Antwort machen möchte. Diese Gelegenheit möchte ich gleichzeitig dazu nutzen meinen Coding-Stil zu verbessern in dem ich Funktionen auslager und header dateien benutze (bisher war bei mir immer alles in ewig langen .cpp dateien xD ). Hier ist der zugehörige Code:</p>
<p>Connection.h</p>
<pre><code class="language-cpp">#ifndef Connection_h
#define Connection_h

#using &lt;system.dll&gt;
#include &lt;iostream&gt;
#include &lt;windows.h&gt;

using namespace std;
using namespace System;
using namespace System::IO;
using namespace System::Net;
using namespace System::Text;
using namespace System::Text::RegularExpressions;

String^ requestContent(String^ uri, CookieContainer^ Cookies);

#include &quot;connectionFramework.cpp&quot;

#endif
</code></pre>
<p>connectionFramework.cpp (mir is kein besserer name eingefallen^^)</p>
<pre><code class="language-cpp">#using &lt;system.dll&gt;
#include &lt;iostream&gt;
#include &lt;windows.h&gt;

using namespace std;
using namespace System;
using namespace System::IO;
using namespace System::Net;
using namespace System::Text;
using namespace System::Text::RegularExpressions;

String^ requestContent(String^ uri, CookieContainer^ Cookies)
{
	HttpWebRequest^ request = dynamic_cast&lt;HttpWebRequest^&gt;(WebRequest::Create(uri));
	request-&gt;UserAgent = &quot;User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3 Creative ZENcast v2.01.01&quot;;
	request-&gt;CookieContainer = Cookies;

	HttpWebResponse^ response = dynamic_cast&lt;HttpWebResponse^&gt;(request-&gt;GetResponse());
	Stream^ dataStream = response-&gt;GetResponseStream();
	StreamReader^ reader = gcnew StreamReader( dataStream );
	String^ responseContent = reader-&gt;ReadToEnd();
	reader-&gt;Close();
	dataStream-&gt;Close();
	response-&gt;Close();

	return responseContent;
}
</code></pre>
<p>Connection.cpp</p>
<pre><code class="language-cpp">#include &quot;Connection.h&quot;

//using namespace std;
//using namespace System;
//using namespace System::IO;
//using namespace System::Net;
//using namespace System::Text;
//using namespace System::Text::RegularExpressions; die Using-Teile kann ihc ja weglassen wenn sie schon in der header datei stehen?

int main()
{
	CookieContainer^ Cookies;

	Regex^ jsEnabled = gcnew Regex(&quot;&lt;input type=\&quot;hidden\&quot; name=\&quot;jsEnabled\&quot; id=\&quot;jsEnabled\&quot; value=\&quot;(.*?)\&quot;&quot;);
	Regex^ formkey = gcnew Regex(&quot;&lt;input type=\&quot;hidden\&quot; name=\&quot;formkey\&quot; value=\&quot;(.*?)\&quot;&quot;);
	Regex^ iv = gcnew Regex(&quot;&lt;input type=\&quot;hidden\&quot; name=\&quot;iv\&quot; value=\&quot;(.*?)\&quot;&quot;);
	Regex^ checkcode = gcnew Regex(&quot;&lt;input type=\&quot;hidden\&quot; name=\&quot;checkcode\&quot; value=\&quot;(.*?)\&quot;&quot;);

	cout&lt;&lt;&quot;================SVZ-Connector================&quot;&lt;&lt;endl;

	Console::Write(requestContent(&quot;http://google.de&quot;, Cookies));

	return 0;
}
</code></pre>
<p>wenn ich jetzt versuche das zu Kompilieren kommt aber folgender fehler:</p>
<pre><code>1&gt;connectionFramework.obj : error LNK2005: &quot;class System::String ^ __clrcall requestContent(class System::String ^,class System::Net::CookieContainer ^)&quot; (?requestContent@@YMP$AAVString@System@@P$AAV12@P$AAVCookieContainer@Net@2@@Z) ist bereits in Connection.obj definiert.
1&gt;connectionFramework.obj : error LNK2005: &quot;class System::String ^ __clrcall requestContent(class System::String ^,class System::Net::CookieContainer ^)&quot; (?requestContent@@$$FYMP$AAVString@System@@P$AAV12@P$AAVCookieContainer@Net@2@@Z) ist bereits in Connection.obj definiert.
</code></pre>
<p>Woran könnte das liegen?</p>
<p>MfG<br />
Chris</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/229699/anfängerproblem-linker-error-lnk2005</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 17:26:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/229699.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 15 Dec 2008 13:55:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Anfängerproblem: Linker Error: LNK2005 on Mon, 15 Dec 2008 13:55:58 GMT]]></title><description><![CDATA[<p>Hi</p>
<p>also ich würde gerne noch einmal diesen 1A support hier in anspruch nehmen. Und zwar bin ihc im Moment daran mich ein bissl mit C++ zu beschäftigen und betreib da ein bissl learing by doing. Im moment bin ihc an einem kleinen Programm mit dem ich mich zu einer Webseite verbinden möchte und ein paar sachen mit der Antwort machen möchte. Diese Gelegenheit möchte ich gleichzeitig dazu nutzen meinen Coding-Stil zu verbessern in dem ich Funktionen auslager und header dateien benutze (bisher war bei mir immer alles in ewig langen .cpp dateien xD ). Hier ist der zugehörige Code:</p>
<p>Connection.h</p>
<pre><code class="language-cpp">#ifndef Connection_h
#define Connection_h

#using &lt;system.dll&gt;
#include &lt;iostream&gt;
#include &lt;windows.h&gt;

using namespace std;
using namespace System;
using namespace System::IO;
using namespace System::Net;
using namespace System::Text;
using namespace System::Text::RegularExpressions;

String^ requestContent(String^ uri, CookieContainer^ Cookies);

#include &quot;connectionFramework.cpp&quot;

#endif
</code></pre>
<p>connectionFramework.cpp (mir is kein besserer name eingefallen^^)</p>
<pre><code class="language-cpp">#using &lt;system.dll&gt;
#include &lt;iostream&gt;
#include &lt;windows.h&gt;

using namespace std;
using namespace System;
using namespace System::IO;
using namespace System::Net;
using namespace System::Text;
using namespace System::Text::RegularExpressions;

String^ requestContent(String^ uri, CookieContainer^ Cookies)
{
	HttpWebRequest^ request = dynamic_cast&lt;HttpWebRequest^&gt;(WebRequest::Create(uri));
	request-&gt;UserAgent = &quot;User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; de; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3 Creative ZENcast v2.01.01&quot;;
	request-&gt;CookieContainer = Cookies;

	HttpWebResponse^ response = dynamic_cast&lt;HttpWebResponse^&gt;(request-&gt;GetResponse());
	Stream^ dataStream = response-&gt;GetResponseStream();
	StreamReader^ reader = gcnew StreamReader( dataStream );
	String^ responseContent = reader-&gt;ReadToEnd();
	reader-&gt;Close();
	dataStream-&gt;Close();
	response-&gt;Close();

	return responseContent;
}
</code></pre>
<p>Connection.cpp</p>
<pre><code class="language-cpp">#include &quot;Connection.h&quot;

//using namespace std;
//using namespace System;
//using namespace System::IO;
//using namespace System::Net;
//using namespace System::Text;
//using namespace System::Text::RegularExpressions; die Using-Teile kann ihc ja weglassen wenn sie schon in der header datei stehen?

int main()
{
	CookieContainer^ Cookies;

	Regex^ jsEnabled = gcnew Regex(&quot;&lt;input type=\&quot;hidden\&quot; name=\&quot;jsEnabled\&quot; id=\&quot;jsEnabled\&quot; value=\&quot;(.*?)\&quot;&quot;);
	Regex^ formkey = gcnew Regex(&quot;&lt;input type=\&quot;hidden\&quot; name=\&quot;formkey\&quot; value=\&quot;(.*?)\&quot;&quot;);
	Regex^ iv = gcnew Regex(&quot;&lt;input type=\&quot;hidden\&quot; name=\&quot;iv\&quot; value=\&quot;(.*?)\&quot;&quot;);
	Regex^ checkcode = gcnew Regex(&quot;&lt;input type=\&quot;hidden\&quot; name=\&quot;checkcode\&quot; value=\&quot;(.*?)\&quot;&quot;);

	cout&lt;&lt;&quot;================SVZ-Connector================&quot;&lt;&lt;endl;

	Console::Write(requestContent(&quot;http://google.de&quot;, Cookies));

	return 0;
}
</code></pre>
<p>wenn ich jetzt versuche das zu Kompilieren kommt aber folgender fehler:</p>
<pre><code>1&gt;connectionFramework.obj : error LNK2005: &quot;class System::String ^ __clrcall requestContent(class System::String ^,class System::Net::CookieContainer ^)&quot; (?requestContent@@YMP$AAVString@System@@P$AAV12@P$AAVCookieContainer@Net@2@@Z) ist bereits in Connection.obj definiert.
1&gt;connectionFramework.obj : error LNK2005: &quot;class System::String ^ __clrcall requestContent(class System::String ^,class System::Net::CookieContainer ^)&quot; (?requestContent@@$$FYMP$AAVString@System@@P$AAV12@P$AAVCookieContainer@Net@2@@Z) ist bereits in Connection.obj definiert.
</code></pre>
<p>Woran könnte das liegen?</p>
<p>MfG<br />
Chris</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630792</guid><dc:creator><![CDATA[ChrisKringel]]></dc:creator><pubDate>Mon, 15 Dec 2008 13:55:58 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerproblem: Linker Error: LNK2005 on Mon, 15 Dec 2008 14:07:54 GMT]]></title><description><![CDATA[<p>ChrisKringel schrieb:</p>
<blockquote>
<p>...</p>
<p>Connection.h</p>
<pre><code class="language-cpp">...#include &quot;connectionFramework.cpp&quot;
</code></pre>
<p>...</p>
</blockquote>
<p>Das solltest Du nicht tun - und brauchst es auch nicht.<br />
mit den &quot;include-guards&quot; (&quot;#ifndef ... #define ....#endif&quot;) schützt Du zwar den Compiler ... nicht aber den Linker vor Doppeldefinitionen.<br />
Stattdessen: Header inkludieren!<br />
=&gt;<br />
connectionframework.cpp</p>
<pre><code class="language-cpp">...#include &quot;Connection.h&quot;
</code></pre>
<p>Noch ein Tipp: Es ist üblicher, das &quot;Implementierungsfile&quot; genauso zu nennen, wie den Header (natürlich bis auf die Endung).<br />
Hier also:<br />
Connection.h<br />
Connection.cpp (statt &quot;connectionFramework.cpp&quot;)<br />
Ist nicht zwingend, hilft aber bei der Übersicht...</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630795</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630795</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Mon, 15 Dec 2008 14:07:54 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerproblem: Linker Error: LNK2005 on Mon, 15 Dec 2008 14:05:36 GMT]]></title><description><![CDATA[<p>Wenn Du connection.cpp und connectionframework.cpp bereits in einem Projekt zusammengefasst hast, will der Compiler (bzw. der Linker) diese zu einem ausführbaren Programm zusammenfassen. Da Du in der connection.h die Datei connectionframework.cpp includest, wird der Inhalt zweimal übersetzt, nämlich einmal bei der Übersetzung von connectionframework.cpp selbst und einmal bei der Übersetzung von connection.cpp (über connection.h).</p>
<p>Man bindet keine .cpp-Dateien in .h-Dateien ein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630796</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630796</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 15 Dec 2008 14:05:36 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerproblem: Linker Error: LNK2005 on Mon, 15 Dec 2008 14:22:05 GMT]]></title><description><![CDATA[<p>Und bei zukünftigen Fragen zu C++/CLI (denn das machst du!) schau mal hier 'rein:</p>
<p><a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-58.html" rel="nofollow">http://www.c-plusplus.net/forum/viewforum-var-f-is-58.html</a><br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630802</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630802</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Mon, 15 Dec 2008 14:22:05 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerproblem: Linker Error: LNK2005 on Mon, 15 Dec 2008 15:12:17 GMT]]></title><description><![CDATA[<p>Cool es funzt. Ich merke mir:</p>
<p>#include &quot;<em>.h&quot; in einer cpp: gut<br />
#include &quot;</em>.cpp&quot; in einer .h: böse</p>
<p>danke für die Hilfe<br />
chris</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630844</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630844</guid><dc:creator><![CDATA[ChrisKringel]]></dc:creator><pubDate>Mon, 15 Dec 2008 15:12:17 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerproblem: Linker Error: LNK2005 on Mon, 15 Dec 2008 15:17:32 GMT]]></title><description><![CDATA[<p>ChrisKringel schrieb:</p>
<blockquote>
<p>#include &quot;*.cpp&quot; in einer .h: böse</p>
</blockquote>
<p><code>#include &quot;*.cpp&quot;</code> : böse - egal, wo ^^</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1630846</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1630846</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Mon, 15 Dec 2008 15:17:32 GMT</pubDate></item></channel></rss>