Verständnisproblem mit #include



  • Hallo!

    Ich habe bisher mit bloodshet DEV C++ ein paar ganz kleine Programme geschrieben und habe nun gelesen, dass ich besser einen anderen Compiler benutzen sollte.

    Nun habe ich mir Microsoft Visual C++ 2010 Express runtergeladen und einfach mal ein bisschen rumprobiert und die selben Programme versucht abzuspielen, die ich mit bloodshet schon programmiert hatte.

    Wenn ich aber mit Visual C++ 2010 arbeite, muss ich, damit ein Programm abgespielt wird, sowohl

    " #include "StdAfx.h" " als auch
    " #include <iostream> "

    einfügen, weil sonst eine Fehlermeldung kommt. Bei bloodshet hat es gereicht, einfach #include <iostream> zu benutzen.

    Kann mir das jemand erklären?

    Vielen Dank!!!



  • Du musst in den Einstellungen vorkomplilierte Header ausschalten. Ich kann dir jetzt aber nicht genau sagen, wo der Einstellungspunkt ist.

    Edit: oftmals ist es auch günstiger, mit einem leeren Projekt anzufangen und sich eine main.cpp selbst hinzuzufügen. Dann werden auch keine vorkompilierten Header verwendet.



  • Tobias_85 schrieb:

    ...

    Ich hoffe ich kann es aus dem Kopf richtig rüberbringen:

    Neues Projekt, Win32 Konsolenanwendung
    Dort Leeres Projekt auswählen (und falls dann noch nötig vorkompilierte Header deaktivieren).

    Anschließend würde ich noch (sobald die erste Datei hinzugefügt wurde) in den Projekteinstellungen (Alle Konfigurationen) die Warnstufe grundsätzlich auf 4 erhöhen.



  • Warum empfehlt ihr immer die PCHs abzuschalten? Man sollte eher wissen, das man bei PCHs die stdafx.h inlkudieren muß, was nicht weh tut. Ganz im Gegenteil, die Projekte werden am Ende schneller kompiliert. Sagt ja schon der Name "Vorkompilierte Header"... das da nicht immer und immer wieder Header sinnlos neu kompiliert werden müssen.



  • Artchi schrieb:

    Warum empfehlt ihr immer die PCHs abzuschalten?

    Weil es gerade am Anfang nicht wirklich viel Unterschied macht, und nicht nur Vorteile mit sich bringt (z.B. kann es beim Austausch des Codes zwischen Compilern zu Problemen führen, und dies kenne ich gerade bei Anfängern, die entweder sich noch nicht auf eine Umgebung/Compiler geeinigt haben, oder anderen ihren Code zur Verfügung stellen).

    Auch schön war mal in einer Firma wo 2 Compiler parallel benutzt wurde das Problem, das man weil einer eine Einstellung geändert hatte dem anderen Compiler eine "Dummy"-stdafx.h unterjubeln musste.

    Wenn es eine Einstellung für vorkompilierte Header gibt, die keinen Eingriff an den Dateien vornehmen, wäre dies eindeutig die beste Lösung.


Anmelden zum Antworten