Output compile time stamp in Visual C++ executable?如何将编译时间戳信息插入使用Visual C ++ 2005构建的可执行文件中? 我希望能够在执行程序时输出如下内容:
日期和时间反映了项目建立的时间。 除非重新编译,否则不应在程序的每次后续调用中更改它们。 尽管不是您确切的格式,但DATE的格式为Mmm dd yyyy,而TIME的格式为hh:mm:ss。您可以创建一个像这样的字符串,并在任何适合您的打印例程中使用它:
(请注意另一个答案:TIMESTAMP仅显示源文件的修改日期/时间,而不显示生成日期/时间。)
预定义为C99标准的一部分,因此应该对您可用。它们与预处理器一起运行一次。
嗯...对于Visual C ++,有一个称为
您可以在运行时检查以确定PE标头中的时间戳:
并使用
如果将这些定义放在.h文件中,并包括多个.c / .cpp文件中的定义,则每个文件的日期/时间都将基于其编译时间而有所不同。因此,如果您希望在两个不同的地方使用日期/时间,并且它们应该始终匹配,那么您会遇到麻烦。如果您要进行增量构建,则其中一个文件可能会被重建,而另一个文件则不会被重建,这再次导致时间戳记可能大不相同。
一种更好的方法是在.h文件中制作GetBuildTimeStamp()原型,并将
如果要进行增量构建,则需要确保在每个构建上都更新了构建标记。在Visual C ++中,您可以使用PreBuild步骤执行此操作-但是,在这种情况下,我建议您不要使用已编译的.c / .cpp文件中的 我认为,建议使用DATE,TIME或TIMESTAMP的解决方案就足够了。我确实建议保留触摸程序,以包括在预构建步骤中,以便触摸保存使用预处理程序变量的文件。触摸文件可确保其时间戳比上次编译时新。这样,每次重新编译时,已编译文件中的日期/时间也会更改。
Visual C ++还支持 |