<?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[Linkerfehler]]></title><description><![CDATA[<p>Hallo, wenn ich in einer abgeleiteten Klasse den Basiskonstruktor der oberklasse mitbefülle krieg ich linker fehler, kein plan wo das problem liegt.</p>
<p>main.obj : error LNK2005: &quot;public: <strong>thiscall ConnectDB::ConnectDB(char *,char *,char *,char *,unsigned int)&quot; (??0ConnectDB@@QAE@PAD000I@Z) already defined in RequestDB.obj<br />
main.obj : error LNK2005: &quot;public: __thiscall ConnectDB::ConnectDB(struct HWND__ *,char *,char *,char *,char *,unsigned int)&quot; (??0ConnectDB@@QAE@PAUHWND</strong>@@PAD111I@Z) already defined in RequestDB.obj<br />
main.obj : error LNK2005: &quot;public: __thiscall ConnectDB::~ConnectDB(void)&quot; (??1ConnectDB@@QAE@XZ) already defined in RequestDB.obj</p>
<p>Die Basisklasse</p>
<pre><code class="language-cpp">#ifndef _ConnectDB_H
#define _ConnectDB_H
#include &lt;winsock.h&gt;
#include &lt;mysql.h&gt;
#include &lt;windows.h&gt;

class ConnectDB
{
public:
	MYSQL* pConnection; 
	char* pHost;
	char* pUsername;
	char* pPassword;
	char* pDatabase;
	unsigned int pPort;
	bool status;
	ConnectDB(char* pHost, char* pUser, char* pPass, char* pDatab, unsigned int pPort ); /* Für Konsole */
	ConnectDB(HWND hWnd, char* pHost, char* pUser, char* pPass, char* pDatab, unsigned int pPort ); /* Für Win-API */
	~ConnectDB();
};

ConnectDB::ConnectDB(char* pHost, char* pUsername, char* pPassword, char* pDatabase, unsigned int pPort)
{
		pConnection = mysql_init(NULL);
		if(mysql_real_connect(pConnection, pHost, pUsername, pPassword, pDatabase, pPort,NULL,0)!=NULL)
			this-&gt;status = true;
}

ConnectDB::ConnectDB(HWND hWnd, char* pHost, char* pUsername, char* pPassword, char* pDatabase, unsigned int pPort)
{
		pConnection = mysql_init(NULL);
		if(mysql_real_connect(pConnection, pHost, pUsername, pPassword, pDatabase, pPort,NULL,0)==NULL)
		{
			MessageBox(hWnd, L&quot;Verbindung der Datenbank\n fehlgeschlagen&quot;, L&quot;MySQL Connection Error&quot;, MB_OK);
		}
		else
			this-&gt;status = true;
}

ConnectDB::~ConnectDB()
{
	mysql_close(pConnection);
}
#endif
</code></pre>
<p>die abgeleitete Klasse</p>
<pre><code class="language-cpp">#pragma once
#include &quot;ConnectDB.h&quot;

class RequestDB :
	public ConnectDB
{
public:
	RequestDB(HWND hWnd,
			  char* pHost,
			  char* pUser,
			  char* pPass,
			  char* pDatab,
			  unsigned int pPort) : ConnectDB(hWnd, pHost, pUser, pPass, pDatab, pPort){}

	~RequestDB(void){}
	//MYSQL_RES*	SearchDB(std::string searchArg);
private:
};
</code></pre>
<p>Scheinbar ist was falsch bei dem Aufruf des Basisklassenkonstruktors, aber was?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/187963/linkerfehler</link><generator>RSS for Node</generator><lastBuildDate>Fri, 03 Jul 2026 21:56:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/187963.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 25 Jul 2007 19:43:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Linkerfehler on Wed, 25 Jul 2007 19:43:46 GMT]]></title><description><![CDATA[<p>Hallo, wenn ich in einer abgeleiteten Klasse den Basiskonstruktor der oberklasse mitbefülle krieg ich linker fehler, kein plan wo das problem liegt.</p>
<p>main.obj : error LNK2005: &quot;public: <strong>thiscall ConnectDB::ConnectDB(char *,char *,char *,char *,unsigned int)&quot; (??0ConnectDB@@QAE@PAD000I@Z) already defined in RequestDB.obj<br />
main.obj : error LNK2005: &quot;public: __thiscall ConnectDB::ConnectDB(struct HWND__ *,char *,char *,char *,char *,unsigned int)&quot; (??0ConnectDB@@QAE@PAUHWND</strong>@@PAD111I@Z) already defined in RequestDB.obj<br />
main.obj : error LNK2005: &quot;public: __thiscall ConnectDB::~ConnectDB(void)&quot; (??1ConnectDB@@QAE@XZ) already defined in RequestDB.obj</p>
<p>Die Basisklasse</p>
<pre><code class="language-cpp">#ifndef _ConnectDB_H
#define _ConnectDB_H
#include &lt;winsock.h&gt;
#include &lt;mysql.h&gt;
#include &lt;windows.h&gt;

class ConnectDB
{
public:
	MYSQL* pConnection; 
	char* pHost;
	char* pUsername;
	char* pPassword;
	char* pDatabase;
	unsigned int pPort;
	bool status;
	ConnectDB(char* pHost, char* pUser, char* pPass, char* pDatab, unsigned int pPort ); /* Für Konsole */
	ConnectDB(HWND hWnd, char* pHost, char* pUser, char* pPass, char* pDatab, unsigned int pPort ); /* Für Win-API */
	~ConnectDB();
};

ConnectDB::ConnectDB(char* pHost, char* pUsername, char* pPassword, char* pDatabase, unsigned int pPort)
{
		pConnection = mysql_init(NULL);
		if(mysql_real_connect(pConnection, pHost, pUsername, pPassword, pDatabase, pPort,NULL,0)!=NULL)
			this-&gt;status = true;
}

ConnectDB::ConnectDB(HWND hWnd, char* pHost, char* pUsername, char* pPassword, char* pDatabase, unsigned int pPort)
{
		pConnection = mysql_init(NULL);
		if(mysql_real_connect(pConnection, pHost, pUsername, pPassword, pDatabase, pPort,NULL,0)==NULL)
		{
			MessageBox(hWnd, L&quot;Verbindung der Datenbank\n fehlgeschlagen&quot;, L&quot;MySQL Connection Error&quot;, MB_OK);
		}
		else
			this-&gt;status = true;
}

ConnectDB::~ConnectDB()
{
	mysql_close(pConnection);
}
#endif
</code></pre>
<p>die abgeleitete Klasse</p>
<pre><code class="language-cpp">#pragma once
#include &quot;ConnectDB.h&quot;

class RequestDB :
	public ConnectDB
{
public:
	RequestDB(HWND hWnd,
			  char* pHost,
			  char* pUser,
			  char* pPass,
			  char* pDatab,
			  unsigned int pPort) : ConnectDB(hWnd, pHost, pUser, pPass, pDatab, pPort){}

	~RequestDB(void){}
	//MYSQL_RES*	SearchDB(std::string searchArg);
private:
};
</code></pre>
<p>Scheinbar ist was falsch bei dem Aufruf des Basisklassenkonstruktors, aber was?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1332552</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1332552</guid><dc:creator><![CDATA[zorro-242]]></dc:creator><pubDate>Wed, 25 Jul 2007 19:43:46 GMT</pubDate></item><item><title><![CDATA[Reply to Linkerfehler on Thu, 26 Jul 2007 05:46:31 GMT]]></title><description><![CDATA[<p>Laut Compiler Fehler hast du das schonmal definiert bzw. zweimal gelinkt einmal hier -&gt;main.obj &amp; hier RequestDB.obj schätze das du eine Header Datei zuviel hast in main.cpp oder so <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1332675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1332675</guid><dc:creator><![CDATA[Ascharan]]></dc:creator><pubDate>Thu, 26 Jul 2007 05:46:31 GMT</pubDate></item><item><title><![CDATA[Reply to Linkerfehler on Thu, 26 Jul 2007 06:36:32 GMT]]></title><description><![CDATA[<p>Du solltest die Methodendefinitionen <strong>nicht</strong> direkt in den Header packen, sondern in eine eigene CPP-Datei - dann klappt's auch mit dem Linker.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1332703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1332703</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 26 Jul 2007 06:36:32 GMT</pubDate></item><item><title><![CDATA[Reply to Linkerfehler on Thu, 26 Jul 2007 16:47:55 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Du solltest die Methodendefinitionen <strong>nicht</strong> direkt in den Header packen, sondern in eine eigene CPP-Datei - dann klappt's auch mit dem Linker.</p>
</blockquote>
<p>ah, danke.</p>
<p>wieso wirkt sich das den bei der vererbung aus? bis zu dem zeitpunkt ow ich keine klasse davon abgeleitet hat, funktionierte das wunderbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1333223</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1333223</guid><dc:creator><![CDATA[zorro-242]]></dc:creator><pubDate>Thu, 26 Jul 2007 16:47:55 GMT</pubDate></item><item><title><![CDATA[Reply to Linkerfehler on Thu, 26 Jul 2007 16:59:31 GMT]]></title><description><![CDATA[<p>Das wirkt sich nicht wegen der Vererbung aus, sondern wegen der Tatsache, daß du den Header auf einmal in zwei Übersetzungseinheiten eingebunden hast (main.cpp und RequestDB.cpp).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1333232</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1333232</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 26 Jul 2007 16:59:31 GMT</pubDate></item></channel></rss>