<?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[#ifndef in Headerdatei]]></title><description><![CDATA[<p>Hi,</p>
<p>die Headerdatei cursor.h brauche ich in 2 Sourcedateien und beim Linken bekomme ich die Fehlermeldung:</p>
<p>1&gt;------ Erstellen gestartet: Projekt: 2009-06-09UmsatzAuswertung, Konfiguration: Debug Win32 ------<br />
1&gt;Kompilieren...<br />
1&gt;maske_konto.cpp<br />
1&gt;Verknüpfen...<br />
1&gt;masken.obj : error LNK2005: &quot;struct _CONSOLE_SCREEN_BUFFER_INFO strConsoleInfo&quot; (?strConsoleInfo@@3U_CONSOLE_SCREEN_BUFFER_INFO@@A) ist bereits in maske_konto.obj definiert.<br />
1&gt;masken.obj : error LNK2005: &quot;void * hConsole&quot; (?hConsole@@3PAXA) ist bereits in maske_konto.obj definiert.<br />
1&gt;masken.obj : error LNK2005: &quot;struct _COORD Home&quot; (?Home@@3U_COORD@@A) ist bereits in maske_konto.obj definiert.<br />
...<br />
...<br />
1&gt;2009-06-09UmsatzAuswertung - 4 Fehler, 0 Warnung(en)</p>
<p>beim Versuch mit #define :</p>
<p>// &quot;cursor.h&quot;<br />
#include &lt;windows.h&gt;<br />
#include &lt;conio.h&gt;<br />
using namespace std;<br />
#ifndef MYFILE_H<br />
#define MYFILE_H<br />
HANDLE hConsole;<br />
COORD Home;<br />
CONSOLE_SCREEN_BUFFER_INFO strConsoleInfo;<br />
#endif</p>
<p>besteht das Problem weiterhin.<br />
Ich glaube, dass ich diese Präprozessor-Direktiven nicht verstehe.<br />
Könnte mir Jemand dabei helfen ?<br />
Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/242948/ifndef-in-headerdatei</link><generator>RSS for Node</generator><lastBuildDate>Sun, 20 Sep 2026 16:04:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/242948.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 10 Jun 2009 08:50:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to #ifndef in Headerdatei on Wed, 10 Jun 2009 08:50:35 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>die Headerdatei cursor.h brauche ich in 2 Sourcedateien und beim Linken bekomme ich die Fehlermeldung:</p>
<p>1&gt;------ Erstellen gestartet: Projekt: 2009-06-09UmsatzAuswertung, Konfiguration: Debug Win32 ------<br />
1&gt;Kompilieren...<br />
1&gt;maske_konto.cpp<br />
1&gt;Verknüpfen...<br />
1&gt;masken.obj : error LNK2005: &quot;struct _CONSOLE_SCREEN_BUFFER_INFO strConsoleInfo&quot; (?strConsoleInfo@@3U_CONSOLE_SCREEN_BUFFER_INFO@@A) ist bereits in maske_konto.obj definiert.<br />
1&gt;masken.obj : error LNK2005: &quot;void * hConsole&quot; (?hConsole@@3PAXA) ist bereits in maske_konto.obj definiert.<br />
1&gt;masken.obj : error LNK2005: &quot;struct _COORD Home&quot; (?Home@@3U_COORD@@A) ist bereits in maske_konto.obj definiert.<br />
...<br />
...<br />
1&gt;2009-06-09UmsatzAuswertung - 4 Fehler, 0 Warnung(en)</p>
<p>beim Versuch mit #define :</p>
<p>// &quot;cursor.h&quot;<br />
#include &lt;windows.h&gt;<br />
#include &lt;conio.h&gt;<br />
using namespace std;<br />
#ifndef MYFILE_H<br />
#define MYFILE_H<br />
HANDLE hConsole;<br />
COORD Home;<br />
CONSOLE_SCREEN_BUFFER_INFO strConsoleInfo;<br />
#endif</p>
<p>besteht das Problem weiterhin.<br />
Ich glaube, dass ich diese Präprozessor-Direktiven nicht verstehe.<br />
Könnte mir Jemand dabei helfen ?<br />
Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1724322</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1724322</guid><dc:creator><![CDATA[rosic]]></dc:creator><pubDate>Wed, 10 Jun 2009 08:50:35 GMT</pubDate></item><item><title><![CDATA[Reply to #ifndef in Headerdatei on Wed, 10 Jun 2009 09:12:53 GMT]]></title><description><![CDATA[<p>Der include guard könnte nach ganz außen (also auch über die includes), außerdem sollte das using namespace std da verschwinden. Trotzdem denke ich, dass es eigentlich so funktionieren sollte. Hast du vielleicht in einem anderen Header bereits MYFILE_H definiert? Dieses define sollte am besten einen zur Datei passenden Namen bekommen und natürlich auch nur da verwendet werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1724339</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1724339</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Wed, 10 Jun 2009 09:12:53 GMT</pubDate></item><item><title><![CDATA[Reply to #ifndef in Headerdatei on Wed, 10 Jun 2009 09:18:18 GMT]]></title><description><![CDATA[<p>Die Headerguards verhindern nur die Mehrfachdefinition in einer TU, sie dienen nur zum Verhindern von Kompilerfehlern. Wenn du mehrere TUs hast, dann wird auch mehrmals der Präprozessor gestartet, also hast du trotzdem die Objekte mehrmals.</p>
<p>Am sinnvollsten wäre, wenn du komplett auf globale Objekte verzichten würdest. Falls du aus unerklärlich Gründen nicht auf diesen sinnvollen Tipp eingehen willst, kannst du auch die Objekte mit <code>extern</code> kennzeichnen und in nur einer TU definieren.</p>
<p>Zusätzliche Tipps:<br />
- Nimm using namespace std; aus dem Header. Das ist ein ganz schlechter Stil.<br />
- Nimm die <code>includes</code> in den Guard Bereich rein. Beschleunigt je nach dem etwas den Präprozessor.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1724342</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1724342</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Wed, 10 Jun 2009 09:18:18 GMT</pubDate></item><item><title><![CDATA[Reply to #ifndef in Headerdatei on Wed, 10 Jun 2009 09:38:52 GMT]]></title><description><![CDATA[<p>Hast natürlich Recht, Dravere. Ich mach sowas nie, daher sah das grundsätzlich erstmal gut aus... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1724361</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1724361</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Wed, 10 Jun 2009 09:38:52 GMT</pubDate></item><item><title><![CDATA[Reply to #ifndef in Headerdatei on Wed, 10 Jun 2009 09:46:31 GMT]]></title><description><![CDATA[<p>Danke _matze,<br />
danke Dravere,</p>
<p>jetz ist OK.</p>
<p>lg<br />
vladimir</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1724368</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1724368</guid><dc:creator><![CDATA[rosic]]></dc:creator><pubDate>Wed, 10 Jun 2009 09:46:31 GMT</pubDate></item></channel></rss>