Hi,
ich möchte mit einigen #define Anweisungen den Compiler dazu bringen, während der Kompilierung benutzerdefinierte Ausgaben in die Konsole zu schreiben. Damit möchte ich meinen Quelltext mit Kommentaren versehen, z.B. um TO-DO Punkte hervorzuheben.
Der Plan dazu ist folgender:
Ein Makro nimmt einen Text entgegen und erweitert diesen Text um die aktuelle Datei (__FILE__) und die aktuelle Zeilennummer (__LINE__). Anschliessend reicht es den modifizierten Text and #pragma message weiter. #pragma message erledigt dann die Ausgabe in die Konsole. Aus Gründen der Einfachheit habe ich die Textergänzung ausgelassen und nur das einfachste NOTE Makro benutzt.
Der Präprozessor sollte doch NOTE(x) durch message(x) ersetzen, demnach würde aus NOTE ("HELLO") message ("HELLO" ). Damit würde aus der Zeile #pragma NOTE ("HELLO") die Präprozessor Direktive #pragma message ("HELLO"). Nur klappt das leider überhaupt nicht, weder mit dem BCB6 noch mit Codegear2007.
Hat jemand eine Idee?
Gruß,
Guido
ich möchte mit einigen #define Anweisungen den Compiler dazu bringen, während der Kompilierung benutzerdefinierte Ausgaben in die Konsole zu schreiben. Damit möchte ich meinen Quelltext mit Kommentaren versehen, z.B. um TO-DO Punkte hervorzuheben.
Der Plan dazu ist folgender:
Ein Makro nimmt einen Text entgegen und erweitert diesen Text um die aktuelle Datei (__FILE__) und die aktuelle Zeilennummer (__LINE__). Anschliessend reicht es den modifizierten Text and #pragma message weiter. #pragma message erledigt dann die Ausgabe in die Konsole. Aus Gründen der Einfachheit habe ich die Textergänzung ausgelassen und nur das einfachste NOTE Makro benutzt.
Code:
// diese beiden Makros werden benötigt, um einen int in Text umzuwandeln
#define STRSTR(x) #x
#define INTSTR(x) STRSTR(x)
// das soll mal das Makro werden
#define NOTE(x) message(x)
// das hier funktioniert
#pragma message (__FILE__ " (" INTSTR(__LINE__) "): " "Bugfix to do" )
// das hier leider nicht
#pragma NOTE ("HELLO")
Der Präprozessor sollte doch NOTE(x) durch message(x) ersetzen, demnach würde aus NOTE ("HELLO") message ("HELLO" ). Damit würde aus der Zeile #pragma NOTE ("HELLO") die Präprozessor Direktive #pragma message ("HELLO"). Nur klappt das leider überhaupt nicht, weder mit dem BCB6 noch mit Codegear2007.
Hat jemand eine Idee?
Gruß,
Guido