Laden...

[erledigt] Preprocessor Directives - #if liest nicht die Buildkonfigurationen aus

Erstellt von codemonkey vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.224 Views
C
codemonkey Themenstarter:in
2 Beiträge seit 2010
vor 13 Jahren
[erledigt] Preprocessor Directives - #if liest nicht die Buildkonfigurationen aus

Hallo Zusammen,

ich muss beim Erstellen meines WindowsServices verschiedene Codeblöcke ausliefern und habe dazu zwei Buildkonfigurationen als Kopie von Release erstellt.

Nur wenn ich im Code diese Abfragen will, und die Konfigurationen umschalte passiert nicht. Selbiges Problem habe ich im Übrigen auch mit Release. Nur DEBUG und !DEBUG funktioneren.



#if DEBUG
 string foo;
#elif RELEASE
 string foo;
#elif FOO_A
 string foo;
#elif FOO_B
 string foo;
#endif

foo = "bar";


Namen der Konfigurationen stimmen überein. Compilerfehler besagt nur, dass in allen Fällen ausser DEBUG foo nicht definiert ist.

Danke für eure Hilfe.

Gruß,
Tom

49.485 Beiträge seit 2005
vor 13 Jahren

Hallo codemonkey,

du musst die Symbole, auf die du abfragst natürlich auch definieren (z.B. per /D Compiler-Option).

herbivore

2.223 Beiträge seit 2005
vor 13 Jahren

Hallo codemonkey,

wir benutzen diese Feature in unserer Anwendung an einigen Stellen und es klappt solange die definiert sind ohne Probleme.

Ich kann auch in deinem Code keinen Fehler entdecken.

Viele Grüße
Lars

6.911 Beiträge seit 2009
vor 13 Jahren

Hallo,

wie herbivore schon geschrieben hat müssen die Symbole definiert werden.

Beim VS unter dne Projekteigenschaften -> Build -> General -> Conditional compilation symbols -> FOO_A eintragen

Die Symbole können zu Beginn einer Datei per #define FOO_A definiert werden. Diese gelten dann halt nur für diese eine Datei.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

C
codemonkey Themenstarter:in
2 Beiträge seit 2010
vor 13 Jahren

Danke für eure Hilfe. Hat geklappt und es geht weiter.

Gruß,
Tom