Präprozessordefinitionen VS 2005
-
Hallo Experten
Wie schaffe ich es in VS 2005 bei den Präprozessordefinitionen eine Konstante anzulegen der ich einen String zuweisen kann also so z.B. NAME="Test". Die Konstante kann ich zwar so anlegen wenn ich diese aber verwende erhalte ich den Fehler 'Test' wurde nicht gefunden. Test wird nicht als String erkannt sondern als Variable.
-
#define PREPROCESSOR_MACROS_SHALL_NOT_BE_USED_AS_CONSTANTS "and only noobs break this rule"
-
Danke für deine anschauliche Antwort.
Hier im Forum ist noch ein Beitrag
http://www.c-plusplus.net/forum/viewtopic-var-t-is-241334.html
dort wird dem user aber genau dies geraten.
-
Aha.
-
Toll sehr hilfreich
-
Was bistn du für einer?
Deine Frage wurde beantwortet. Hast du noch eine, dann stell sie. Ansonsten nerv nicht.
-
Mich interessiert eigentlich das gleiche was in dem angegebenen Link auch gefragt wurde. Aber dafür gabs ja auch keine Antowrt.
-
OK.
Hier lag ein Verständigungsproblem vor.
Du schreibst "Präprozessordefinitionen" und ich denke an #define (im Code). Du meinst aber die Projekt-Einstellungen im Visual Studio (das "Einstellungsfenster", nicht irgendwas im Code). Nuja.Also.
Ich kenne keinen Weg dem Microsoft C++ Compiler (cl.exe) eine Option unterzujubeln, die dazu führen würde, dass er ein Makro als String definiert. Mit einem Umweg über zwei Helper-Makros, geht es allerdings. Und zwar...
In den "Präprozessordefinitionen" Dialog schreibst du einfach rein
MACRO_NAME#wertoder alternativ
MACRO_NAME=wertIm Programm definierst du dann zwei Makros:
#define STRINGIZE(x) STRINGIZE2(x) #define STRINGIZE2(x) #xDann kannst du so zu deinem String kommen
printf("%s", STRINGIZE(MACRO_NAME));BTW: Wenn du die Boost verwendest, kannst du einfach BOOST_STRINGIZE(x) bzw. BOOST_PP_STRINGIZE(x), kannst dir also die zwei "Hilfs-Defines" sparen.