Name des Projekts ermitteln
-
Wie als Variable und nicht als String das habe ich jetzt nicht ganz verstanden.
-
Also einfaches Beispiel. Projekt heißt z.B. Nachrichtensender. Wenn ich nun in den Präprozessor Definitionen wie beschrieben das Makro setze PROJECT_NAME=$(ProjectName) und dann im Code dieses Makro verwende, also z.B. in einer Messagebox -> AfxMessageBox(PROJECT_NAME), dann erhalte ich den Fehler:
error C2065: 'Nachrichtensender': nichtdeklarierter Bezeichner.
Es wird nun also Nachrichtensender als Variable angenommen. Nicht aber als String so wie ich ihn benötige.
Hier muss es doch eine Lösung geben oder?
-
Er meint dass er noch BOOST_PP_STRINGIZE verwenden müsste.
Nö, meint er natürlich nicht, weil er nicht weiss dass es BOOST_PP_STRINGIZE gibt.Er meint einfach dass das Ding dann nicht unter Anführungszeichen steht, und weiss nicht, wie er es in einen String umwandeln kann.
Anscheinend ist Google bedienen wirklich sehr schwer.
-
cout << BOOST_PP_STRINGIZE(hustbaer);Ausgabe:
"unfreundlicher Zeigenosse"
-
Lieber Hustender Bär: eigentlich weiß ich das schon aber zum einen will ich kein Boost verwenden und zum anderen dachte ich es muss ja auch noch eine andere Lösung geben ohne zusätliche Makros im Code. Aber anscheinend nicht.
-
MFC Man schrieb:
Das funktioniert nicht. Wie schon geschrieben. $ProjectName erhalte ich dann nicht als String sondern als Variable.
Meine Güte... etwas Denken kann helfen um Probleme zu lösen

PROJECT_NAME=\"$(ProjectName)\"
-
Hallo
Also geht doch, danke. Seit ihr heute alle mit dem falschen Fuss aufgestanden oder wieso so unfreundlich.
-
Martin Richter schrieb:
MFC Man schrieb:
Das funktioniert nicht. Wie schon geschrieben. $ProjectName erhalte ich dann nicht als String sondern als Variable.
Meine Güte... etwas Denken kann helfen um Probleme zu lösen

PROJECT_NAME=\"$(ProjectName)\"Cool, danke für den Hinweis!
Dass man da " mit \ escapen kann wusste ich auch nicht. Und bin irgendwie nicht auf die Idee gekommen es zu probieren. Hab es aber auch in der Doku irgendwie nicht gefunden... da steht nur dass " einfach gefressen werden - was man auch, wenn man keine \ verwendet sehr schön beobachten kann...
-
MFC Man schrieb:
Lieber Hustender Bär: eigentlich weiß ich das schon
Achja natürlich.
-
Achja natürlich.
Ich weiß es nachdem ich einen anderen Artikel hier him Forum gelesen habe. Der war sogar von dir. Du bist mein großes Vorbild.
-
MFC Man schrieb:
Also geht doch, danke. Seit ihr heute alle mit dem falschen Fuss aufgestanden oder wieso so unfreundlich.
1. Smilie nicht berücksichtigt.
2. Hättest Du auch mit dem Stringizing Operator (#) Dein Ziel erreicht.
http://msdn.microsoft.com/en-us/library/7e3a913x(VS.80).aspx
3. Ist ein Hinweis auf "Nachdenken" nie fehl am Platz, besonders wenn man die korrekte Antwort bereits erhalten hat und Nachdenken sowohl meine Lösung als auch die Präprozessor Lösung erbracht hätte. IMHO
-
Hallo.
Mit dem Stringize Opertaor habe ich auch getestet. Habe ich aber nicht hinbekommen.