C++ Header Datei "was not declared in this scope"

2 Antworten

Wie der Fehler schon sagt: HELLO_WORLD wurde nicht deklariert. Das liegt daran, dass eine Definition von HELLO_WORLD nur stattfindet, wenn GERMAN, FRENCH, ENGLISH oder INTERNATIONAL vorher bereits definiert sind - was bei dir wohl nicht der Fall ist.

Ohnehin solltest du es anders angehen: gehe mit ifdef ... elif defined(???) ... elif defined(???) ... ... else ... endif alle Fälle durch und biete den englischen Text als Standardwert an.

Ahja, es klappt, wenn ich die Sprachdefinierung vor das #include setze, danke. Die Header Datei werde ich auch überarbeiten, aber ich bin eben noch am Anfang und muss mich da erstmal reinlesen, um ein Gefühl für die Sprache zu bekommen. Vielen Dank nochmal!

0
ifdef GERMAN
define HELLO_WORLD "Hallo Welt!"
endif
if defined(ENGLISH) || defined(INTERNATIONAL)
define HELLO_WORLD "Hello World!"
endif
ifdef FRENCH
define HELLO_WORLD "Bonjour le monde!"
endif

Da sind wohl einige Fehler vorhanden:

  1. Die Macros beginnen wohl alle mit einem #-Zeichen
  2. Warum in der Englisch/international-Zeile plötzlich „if defined“?

Also sollte das so aussehen:

#ifdef GERMAN
#define HELLO_WORLD "Hallo Welt!"
#endif

#ifdef (ENGLISH) || (INTERNATIONAL)
#define HELLO_WORLD "Hello World!"
#endif

#ifdef FRENCH
#define HELLO_WORLD "Bonjour le monde!"
#endif

Außerdem wäre es ggf. einfacher die englische und internationale Version einfach zu trennen. Der Präprozessor liest die Zeilen einmal durch und muß nicht über diese „||“-Zeichen stolpern …

In einer der Implementierungsdateien musst du dann sowieso definieren, welche Sprache gelten soll …

Was möchtest Du wissen?