<?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[StdAfx-Fehler]]></title><description><![CDATA[<p>Wenn ich ein Programm mit dem Anwendungs-Assistenten erstelle und ich füge diesem eine CPP-Datei hinzu, dann muß sie als erstes immer die Zeile</p>
<pre><code class="language-cpp">#include &quot;StdAfx.h&quot;
</code></pre>
<p>haben. Ansonsten kommt folgender Fehler:</p>
<blockquote>
<p>fatal error C1010: Unerwartetes Dateiende waehrend der Suche nach der Direktive fuer die vorkompilierte Header-Datei</p>
</blockquote>
<p>Wenn ich jedoch selbst ein MFC-Programm, ohne Anwendungs-Assistent, schreibe, dann habe ich da gar keine &quot;StdAfx&quot;, weil ich in jeder Datei, wo es nötig ist, einfach nur</p>
<pre><code class="language-cpp">#include &lt;afxwin.h&gt;
</code></pre>
<p>schreibe. Und hier kommt kein Fehler.<br />
Mein Problem ist nun: Wie kann ich eine beliebige allgemeine Klasse für MFC-Anwendungen schreiben, die sowohl bei automatisch (mit &quot;StdAfx&quot;), als auch bei manuell erstellten Projekten (ohne &quot;StdAfx&quot;) funktioniert? Und außerdem: Wieso verlangt der Compiler so penetrant diese Include-Zeile bei jeder CPP-Datei?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/149419/stdafx-fehler</link><generator>RSS for Node</generator><lastBuildDate>Thu, 23 Jul 2026 21:39:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/149419.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 05 Jun 2006 23:42:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to StdAfx-Fehler on Mon, 05 Jun 2006 23:43:34 GMT]]></title><description><![CDATA[<p>Wenn ich ein Programm mit dem Anwendungs-Assistenten erstelle und ich füge diesem eine CPP-Datei hinzu, dann muß sie als erstes immer die Zeile</p>
<pre><code class="language-cpp">#include &quot;StdAfx.h&quot;
</code></pre>
<p>haben. Ansonsten kommt folgender Fehler:</p>
<blockquote>
<p>fatal error C1010: Unerwartetes Dateiende waehrend der Suche nach der Direktive fuer die vorkompilierte Header-Datei</p>
</blockquote>
<p>Wenn ich jedoch selbst ein MFC-Programm, ohne Anwendungs-Assistent, schreibe, dann habe ich da gar keine &quot;StdAfx&quot;, weil ich in jeder Datei, wo es nötig ist, einfach nur</p>
<pre><code class="language-cpp">#include &lt;afxwin.h&gt;
</code></pre>
<p>schreibe. Und hier kommt kein Fehler.<br />
Mein Problem ist nun: Wie kann ich eine beliebige allgemeine Klasse für MFC-Anwendungen schreiben, die sowohl bei automatisch (mit &quot;StdAfx&quot;), als auch bei manuell erstellten Projekten (ohne &quot;StdAfx&quot;) funktioniert? Und außerdem: Wieso verlangt der Compiler so penetrant diese Include-Zeile bei jeder CPP-Datei?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1072042</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1072042</guid><dc:creator><![CDATA[NES-Spieler]]></dc:creator><pubDate>Mon, 05 Jun 2006 23:43:34 GMT</pubDate></item><item><title><![CDATA[Reply to StdAfx-Fehler on Mon, 05 Jun 2006 23:53:39 GMT]]></title><description><![CDATA[<p>Wenn du ein leeres Projekt erstellst, kommt diese Problematik nicht auf.<br />
Dieser Header dient aber dazu, die Compilezeit zu verkürzen, wenn du selten ändernde Header dort einbindest, müssen die nicht jedesmal neu kompiliert werden.<br />
However, ich mag diesen Header auch nicht, erzeuge leere Projekte, mache aber einen &quot;global.h&quot; wo ich häufig benutzte, aber selten ändernde Header einbinde, und globale Konstanten definiere, wie SCREEN_WIDTH o.ä.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1072045</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1072045</guid><dc:creator><![CDATA[Buena Vista]]></dc:creator><pubDate>Mon, 05 Jun 2006 23:53:39 GMT</pubDate></item><item><title><![CDATA[Reply to StdAfx-Fehler on Tue, 06 Jun 2006 06:56:57 GMT]]></title><description><![CDATA[<p>Alle Includes aus der stdafx.h werden vorkompiliert, was den Biuld-Vorgang mitunter erheblich verkürzt. In den Projekteinstellung unter C++/Vorkompilierte Header kannst du diese Header-Datei auch manuell einstellen bzw. entfernen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1072118</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1072118</guid><dc:creator><![CDATA[don_basto]]></dc:creator><pubDate>Tue, 06 Jun 2006 06:56:57 GMT</pubDate></item><item><title><![CDATA[Reply to StdAfx-Fehler on Tue, 06 Jun 2006 11:05:32 GMT]]></title><description><![CDATA[<p>Mein Problem ist eigentlich folgendes: Ich habe eine allgemeine Klasse geschrieben, die für MFC-Anwendungen verwendet wird. Und die soll sowohl für selbst erstellte als auch für automatisch erstellte Projekte funktionieren. Lasse ich nun</p>
<pre><code class="language-cpp">#include &quot;StdAfx.h&quot;
</code></pre>
<p>in der CPP-Datei weg, meckert er bei automatisch erstellten Projekten, daß er den vorkompilierten Header nicht gefunden hat. Schreibe ich ihn hin, kann er die &quot;StdAfx.h&quot; bei manuell erstellten Projekten natürlich nicht finden. Was ich jetzt brauche, ist eine Möglichkeit im Stil von</p>
<pre><code class="language-cpp">#if PROGRAMM_WURDE_AUTOMATISCH_ERSTELLT
#include &quot;StdAfx.h&quot;
#endif
</code></pre>
<p>bzw.</p>
<pre><code class="language-cpp">#if EXISTS (&quot;StdAfx.h&quot;)
</code></pre>
<p>Gibt es da etwas in der Art? Denn es nützt mir ja nichts, wenn ich selbst die Projekteinstellungen ändern kann. Aber jemand anderes, der das nicht macht, soll ja ebenso mit derselben Klasse arbeiten können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1072371</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1072371</guid><dc:creator><![CDATA[NES-Spieler]]></dc:creator><pubDate>Tue, 06 Jun 2006 11:05:32 GMT</pubDate></item><item><title><![CDATA[Reply to StdAfx-Fehler on Sat, 08 Jul 2006 15:47:25 GMT]]></title><description><![CDATA[<p>Da bis jetzt noch niemand geantwortet hat, muß ich nochmal nachfragen. Ich habe also, wie gesagt, eine allgemeine Klasse (die in der Zwischenzeit nichtmal mehr nur für MFC-Anwendungen ist). Also:</p>
<p>Meine Klasse.h:</p>
<pre><code class="language-cpp">#ifndef MEINE_KLASSE_H
#define MEINE_KLASSE_H

class MeineKlasse
{
public:

    MeineKlasse ();

    //...
};

#endif
</code></pre>
<p>Meine Klasse.cpp:</p>
<pre><code class="language-cpp">#include &quot;Meine Klasse.h&quot;

MeineKlasse::MeineKlasse ()
{
    //...
}

//...
</code></pre>
<p>Wie kriege ich es hin, daß diese Dateien auch in ein MFC-Projekt eingebunden werden können, das vorkompilierte Header benutzt und bei dem sonst immer der Fehler</p>
<blockquote>
<p>fatal error C1010: Unerwartetes Dateiende waehrend der Suche nach der Direktive fuer die vorkompilierte Header-Datei</p>
</blockquote>
<p>kommt? Man beachte: Es sind allgemeine Dateien, die, wenn fertig, für jegliche Projekte funktionieren sollen, ohne daß sie verändert werden müssen. Ich kann da weder reinschreiben: &quot;Wenn Ihr meine Klasse benutzen wollt, bereitet Euer Projekt bitte so vor, daß Ihr keine vorkompilierten Header-Dateien habt!&quot;, noch: &quot;Bitte fügt in die CPP-Datei den Befehl #include &quot;StdAfx.h&quot; ein!&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1093979</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1093979</guid><dc:creator><![CDATA[NES-Spieler]]></dc:creator><pubDate>Sat, 08 Jul 2006 15:47:25 GMT</pubDate></item><item><title><![CDATA[Reply to StdAfx-Fehler on Sat, 08 Jul 2006 20:31:21 GMT]]></title><description><![CDATA[<p>Wenn du deine Klassen wiederverwendbar machen willst bzw. sie sollen in anderen Projekten wieder verwendet werden, macht man daraus eigentlich eine separate Library (im VS-Jargon ein separates Projekt in einer Solution). Soll heißen: erstelle ein neues Projekt als Win32-Library. Und dann kannst du selbst bestimmen, was du speziell für diese Lib benutzen willst: PCHs oder doch keine PCHs. Das ist dann unabhängig von allen anderen Projekten compilierbar. Außerdem könntest du auch nur eine fertige *.LIB plus Headers weiter geben ohne das sich jemand um Neukompilieren kümmern muß.</p>
<p>Also, möglich ist es auf jeden Fall. Mußt halt nur die richtige Strategie wählen. <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/1094161</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1094161</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Sat, 08 Jul 2006 20:31:21 GMT</pubDate></item><item><title><![CDATA[Reply to StdAfx-Fehler on Sun, 09 Jul 2006 12:00:19 GMT]]></title><description><![CDATA[<p>Ja, klar könnte ich eine Lib-Datei erstellen, die ich dann mit dem Header weitergebe. Aber was ist, wenn das ganze tatsächlich mit offenem Quellcode verbreitet werden soll? Wenn der Benutzer die CPP- und keine Lib-Datei einbauen können soll. Das muß doch irgendwie gehen, daß ich eine allgemeine Klasse mit H- und CPP-Datei habe, die in einem Projekt unabhängig davon funktioniert, ob dieses Projekt nun vorkompilierte Header benutzt oder nicht.</p>
<p>Noch eine andere Frage: Wenn ich eine eigene Lib ohne MFC erstelle und diese in ein MFC-Programm einbinde:</p>
<pre><code class="language-cpp">#pragma comment (lib, &quot;Meine Lib.lib&quot;)
</code></pre>
<p>kommt immer folgende Warnung:</p>
<blockquote>
<p>warning LNK4098: Standardbibliothek &quot;libc.lib&quot; steht in Konflikt mit anderen Bibliotheken; /NODEFAULT:Bibliothek verwenden</p>
</blockquote>
<p>Wie man die umgeht, ist ja simpel. Man schreibt einfach:</p>
<pre><code class="language-cpp">#pragma comment (linker, &quot;nodefaultlib:libc.lib&quot;)
</code></pre>
<p>Meine Frage ist nun: Wieso steht diese libc.lib <em>überhaupt</em> mit anderen Bibliotheken im Konflikt? Das passiert selbst, wenn ich nur eine Klasse habe, welche eine Funktion besitzt, die eine Message-Box anzeigt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1094372</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1094372</guid><dc:creator><![CDATA[NES-Spieler]]></dc:creator><pubDate>Sun, 09 Jul 2006 12:00:19 GMT</pubDate></item></channel></rss>