pb获取软件编译日期(时间)的快捷方法

来源:互联网 发布:淘宝怎么开直播视频 编辑:程序博客网 时间:2024/04/28 08:37

        在用PB开发软件时,有时候需要根据日期来生成软件的版本号。比如软件的版本为V5,为了体现同一版本软件在不同日期下编译生成的版本差异化,我们有时候会在软件的版本后面加上build和日期,类似于这样:V5 build20110727 ,表示该软件的版本是V5,编译日期时2011-07-27 。

        【V5 build】这一字符串在很长一段时间内基本上是固定的,但是【20110727】这一日期串是经常变动的。如何实时的添加这个日期串呢?

        常规的做法有两种。

        一、每次编译之前,手动更改该日期串为编译当日的日期。这种做法很简单,但是更改的步骤容易被我们遗忘。

        二、通过API函数在软件运行过程中,动态获取软件exe文件的最后修改日期(获取方面可以参考我的博客:PB获取和设置文件最后修改日期的API方法 ),再赋值给日期串。这种做法比较复杂,需要了解API(当然封装成自定义对象后,使用起来也不会太麻烦),但是它能避免手动修改的易遗忘,保证每次编译后都能准确取到最后的编译日期。

        本文所要介绍的这种方法,思路与上面的第二种有点类似,都是取软件编译日期,但是实现起来却是跟第一种方法一样简单,也不需要使用API函数。具体的做法如下:

string ls_ver = "V5 build" + string(today(), "yyyymmdd") //编译后 ls_ver里面存储的值就是【V5 build加上编译的日期 】了


        其实就是这么简单。由于变量的初始值是在编译时形成的,因此,对于上面我们声明的string类型变量 ls_ver 来说, 软件编译时,会自动获取编译时的日期,并将编译时的日期赋值给 ls_ver 。

        假设软件是在2011-07-27编译的那么上面的变量初始化赋值语句,等同于:

 

string ls_ver = "V5 build20110727”


         其实也可以将这种思路理解为跟第一种方法类似,只是将“编译前手动更改该日期串为编译当日的日期”,自动化为“编译时自动更改该日期串为编译当日的日期”。

 

        上面介绍的取编译日期的方法,只是一个很小的功能,但是对于我们程序员来说,它给了我们很多的启迪,我们可以按照这种思路,炮制出一大堆的应用。比如:取软件编译时的电脑名称、IP地址、网卡地址、操作系统信息等等。

        希望我的这种做法,能够起到抛砖引玉的作用。

 

        另外大家可以看看这个贴子:pb全局静态变量编译后,存储在哪?

原创粉丝点击