是否可以将构建时间插入应用程序?

时间:2014-07-03 18:48:20

标签: c++ windows ctime

游戏有这个: enter image description here

我很好奇这是否是实际的构建时间,果然,“文件最后修改时间”#39; Crysis.exe(该计划)的日期为03/31/2009, 01:40

当然,开发人员可以轻松地手动输入该值,并在一分钟内构建应用程序,但我很好奇是否实际上可以输入当前日期/时间(到最近的秒)当应用程序实际构建时。

这将有许多优点,包括轻松识别应用程序的不同版本。

这可能吗?

2 个答案:

答案 0 :(得分:3)

是构建的时间由__TIME__宏提供。在您的示例中,他们还使用提供日期的__DATE__宏。

LIVE DEMO

答案 1 :(得分:1)

是。我想到了几种方法:

  1. 使用C的__DATE____TIME__宏。它们是标准的一部分,但是,它们花费了特定文件最后构建的时间。这意味着,如果你,例如将构建日期放在应用程序的屏幕上,然后只有在您进行完整的清理构建或更改屏幕源文件时才会更新日期。要解决此问题,您可以在构建过程中添加一个脚本,例如:呼叫

    touch AboutScreen.cpp
    

    强行触发重建。

  2. 编写一个shell脚本,在每次构建之前运行,生成头文件,如

    #define BUILD_DATE  "2014-07-03 20:15"
    

    并在每次构建之前运行该脚本。由于每次都会生成新文件,因此构建过程应注意到它已更改并自动触发about屏幕的新版本或显示构建日期/时间的任何内容。