Frage

Wie würde ich das Datum und die Zeit für die Zwecke des Build drucken. Dh: Wenn die Konsole für meine Anwendung startet Ich möchte, dies zu tun:

Binary Build date: 03/03/2009 @ 10:00AM

Ich denke, das eine super nützliche Funktion für alle Anwendungen hinter den Kulissen für Programmierer, vor allem in einem Team.

haben würde

Gibt es eine einfache Möglichkeit, diese unter Verwendung von Visual Studio 2008 in C ++ zu tun. Danke.

War es hilfreich?

Lösung

Mit Präprozessor des __DATE__ und __TIME__.

printf("Binary build date: %s @ %s\n", __DATE__, __TIME__);

darauf achten, dass CPP-Datei, die diesen Code enthält, ist wirklich kompiliert, verwende ich Touch-Dienstprogramm für die Datei als Pre-Build-Schritt: touch file.cpp

Touch.bat:

@copy nul: /b +%1 tmp.$$$
@move tmp.$$$ %1

Andere Tipps

Sie können die Makros verwenden __TIME__ und __DATE__. Beachten Sie die doppelten Unterstrichen. Diese werden bei der Kompilierung abgerollt und damit werden Sie die letzte Kompilierung gespeichert in Ihrer Datei (en) bekommen.

Beachten Sie, dass die Uhrzeit und das Datum Makros nur wie gewünscht funktionieren, wenn die bestimmte Datei, sie enthält, wird garantiert bei jedem Build kompiliert werden.

Eine Möglichkeit, dies zu tun, den integrierten in __DATE__ und __TIME__ Makros wäre verwenden. Von MSDN (für VS 2005):

  

__DATE__:    Die Zusammenstellung Datum der aktuellen Quelldatei. Das Datum ist ein String-Literal der Form Mmm dd yyyy. Der Name des Monats Mmm ist die gleiche wie für Daten durch die Bibliotheksfunktion asctime in TIME.H. erklärt erzeugt

     

__TIME__:    Die jüngste Kompilierung der aktuellen Quelldatei. Es ist ein String-Literal der Form hh: mm: ss.

ähnlich wie Virne Antwort habe ich eine einfache Header-Datei namens „BuildDate.h“ mit folgendem Inhalt:

#define BUILD_DATE __DATE__ " " __TIME__

Ich berühre die Datei mit GnuWin32 Befehl in meinem Pre-Build-Ereignisse berühren:

touch.exe BuildDate.h

Dann schließe ich die Header-Datei in einem beliebigen Code, wo ich Zugriff auf die BUILD_DATE Saite verzichten will. Z.

#include "BuildDate.h"
...
logger->Log("Build Date: " BUILD_DATE);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top