<?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[Funktion nur in Headerdatei]]></title><description><![CDATA[<p>Hallo! Ich möchte eine globale Funktion haben, die mir auf die Debugausgabe schreibt. Dazu habe ich den unten stehenden Code in einer Headerdatei erstellt und binde den Header in die Klassen ein, wo ich die Funktion aufrufen möchte. Leider bekomme ich dauernd Linkerfehler, und weiss ehrlich gesagt gar nicht warum...</p>
<p>1&gt;Object1.obj : error LNK2005: &quot;void __cdecl MyNamespace::PrintDebugOutput(char const *,...)&quot; (?PrintDebugOutput@mynamespace@@YAXPBDZZ) ist bereits in MyObject.obj definiert.<br />
1&gt;Object2.obj : error LNK2005: &quot;void __cdecl MyNamespace::PrintDebugOutput(char const *,...)&quot; (?PrintDebugOutput@mynamespace@@YAXPBDZZ) ist bereits in MyObject.obj definiert.</p>
<p>Header.h</p>
<pre><code class="language-cpp">#ifndef HEADER_H
#define HEADER_H

#include &lt;cstdarg&gt;
#include &lt;cstdio&gt;
#include &lt;Windows.h&gt;

namespace MyNamespace
{
	void PrintDebugOutput(const char* message, ...)
	{
		char buffer[512];
		va_list args;
		va_start(args, message);
		vsprintf_s(buffer, sizeof(buffer), message, args);
		va_end(args);

		OutputDebugString(buffer);
	}
}

#endif
</code></pre>
<p>Vielen Dank schonmal im voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/234648/funktion-nur-in-headerdatei</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 10:20:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/234648.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 20 Feb 2009 14:10:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktion nur in Headerdatei on Fri, 20 Feb 2009 14:10:08 GMT]]></title><description><![CDATA[<p>Hallo! Ich möchte eine globale Funktion haben, die mir auf die Debugausgabe schreibt. Dazu habe ich den unten stehenden Code in einer Headerdatei erstellt und binde den Header in die Klassen ein, wo ich die Funktion aufrufen möchte. Leider bekomme ich dauernd Linkerfehler, und weiss ehrlich gesagt gar nicht warum...</p>
<p>1&gt;Object1.obj : error LNK2005: &quot;void __cdecl MyNamespace::PrintDebugOutput(char const *,...)&quot; (?PrintDebugOutput@mynamespace@@YAXPBDZZ) ist bereits in MyObject.obj definiert.<br />
1&gt;Object2.obj : error LNK2005: &quot;void __cdecl MyNamespace::PrintDebugOutput(char const *,...)&quot; (?PrintDebugOutput@mynamespace@@YAXPBDZZ) ist bereits in MyObject.obj definiert.</p>
<p>Header.h</p>
<pre><code class="language-cpp">#ifndef HEADER_H
#define HEADER_H

#include &lt;cstdarg&gt;
#include &lt;cstdio&gt;
#include &lt;Windows.h&gt;

namespace MyNamespace
{
	void PrintDebugOutput(const char* message, ...)
	{
		char buffer[512];
		va_list args;
		va_start(args, message);
		vsprintf_s(buffer, sizeof(buffer), message, args);
		va_end(args);

		OutputDebugString(buffer);
	}
}

#endif
</code></pre>
<p>Vielen Dank schonmal im voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1667082</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1667082</guid><dc:creator><![CDATA[Haku]]></dc:creator><pubDate>Fri, 20 Feb 2009 14:10:08 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion nur in Headerdatei on Fri, 20 Feb 2009 14:23:38 GMT]]></title><description><![CDATA[<p>Funktionen solltest du nicht in Headerdateien definieren, sondern nur deklarieren (es sei denn, sie sind <code>inline</code> ). Die Definition sollte in der CPP-Datei stehen.</p>
<p>Abgesehen davon sind variable Funktionsparameter böse, weil nicht typsicher und gefährlich mit Objekten. In C++ verwendet man die eigentlich nie.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1667094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1667094</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 20 Feb 2009 14:23:38 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion nur in Headerdatei on Fri, 20 Feb 2009 14:39:42 GMT]]></title><description><![CDATA[<p>Danke, inline war das Stichwort <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>
<p>Hmm ja, es sollte eine reine Debugausgabe werden. Daher wollte ich jetzt nicht extra eine cpp-Datei anlegen, sind schon soviele Dateien in dem Projekt.</p>
<p>Merci</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1667109</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1667109</guid><dc:creator><![CDATA[Haku]]></dc:creator><pubDate>Fri, 20 Feb 2009 14:39:42 GMT</pubDate></item></channel></rss>