Präprozessor
-
Weshalb meldet der VC++6-Compiler als einziger ein "unerwartetes #endif"?
//Klassenimplementation
#ifdef _MSC_VER
#include "stdafx.h"
#endif#include irgendwas
..Code..
Ziel ist die erfolgreiche Compilierung der Klasse mit verschiedenen Compilern.
Danke
Thomi
-
würde mal spontan vernuten, das es daran nicht liegt. Hast du vielleicht unterhab irgendwo ein #endif vegessen?
-
MSVC ignoriert alles, was vor dem #include für die vorkompilierte Headerdatei steht, auch Präprozessordirektiven.
-
Das war mir neu und stimmt auffallend.
@<Thomi>:
Warum arbeitest du überhaupt mit vorkompilierten Headern, wenn es dann eh auf verschiedenen Compilern laufen soll?
-
Für was benützt man überhaupt vorkompilierte Header?
-
Wieso vorkompilierte Header?
VC++6 verlangt die "stdafx.h", ich würde aber gern darauf verzichten.
Ich inkludiere eigentlich nur die Header-Datei, in der die Klasse deklariert wird.
-
Projekt->Einstellungen->C/C++->Vorkomilierte Header
dort einfach einstellen, das du sie nicht verwenden willst - fertig ist der Lack. Eventuell mußt du nun noch (wenn du die stdafx.h erst raugeschmissen hast einige #include von dort an die entsprechenden Stellen nachziehen).
-
@TheBigW
Danke, das ist das optimalste.Vielleicht kann jetzt noch jemand erklären, weshalb eine einfache #ifdef ... #endif nicht funktioniert.
-
siehe oben -> das hat MFK bereits glänzend aufgeklärt
-
Ups...hatte ich überlesen. Mein Fehler
Dank an alle!