国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

VC使用編譯時間作為版本號標(biāo)識的方法

2020-01-26 14:13:44
字體:
供稿:網(wǎng)友

常用方法分兩步:

1. 得到編譯時間;

2. 設(shè)置基準(zhǔn)時間,以編譯時間距基準(zhǔn)時間的總天數(shù)的2倍作為版本號,適當(dāng)情況還可加上初值;

其中第一步實現(xiàn)有兩種方法:

1. 直接使用系統(tǒng)宏:CString OcxTime = __DATE__;
2. 在編譯選項的Pre-link Step中調(diào)用批處理文件.bat:

@echo offecho #pragma once>"Ver.h"echo #define APP_VER_NUM  "%data%">>"Ver.h"

其它網(wǎng)友的補充

使用宏__DATE__和__TIME__

CString strVersion,strBuildTime; strBuildTime = __DATE__; strBuildTime.Append(" "); strBuildTime.Append(__TIME__); COleVariant vtime(strBuildTime); vtime.ChangeType(VT_DATE); COleDateTime dateTime=vtime; SYSTEMTIME systime; VariantTimeToSystemTime(dateTime, &systime); CTime buildTime(systime); strVersion = buildTime.Format(" Builded %Y-%m-%d %H:%M:%S "); 

it一夢同學(xué)的補充

一般來說,發(fā)布的正式軟件都會包含程序的svn版本號以及軟件的編譯版本和編譯時間等信息,但是這些東西并不是默認(rèn)就存在的,需要我們進(jìn)行一些步驟的處理。具體做法有幾種,萬變不離其宗的是,利用SVN自帶的指令獲取到版本號以及當(dāng)前時間,填充模板當(dāng)中的占位符,最后用替換后的模板覆蓋資源文件即可。這里只講最簡單的一種:
a. 首先需要給VC程序添加資源文件,假設(shè)程序名為Test,則資源文件為Test.rc
b. 向資源文件中添加新的資源項――version,資源文件用記事本打開,增加了如下代碼:

VS_VERSION_INFO VERSIONINFO FILEVERSION 1,0,0,1 PRODUCTVERSION 1,0,0,1 FILEFLAGSMASK 0x17L#ifdef _DEBUG FILEFLAGS 0x1L#else FILEFLAGS 0x0L#endif FILEOS 0x4L FILETYPE 0x1L FILESUBTYPE 0x0LBEGIN  BLOCK "StringFileInfo"  BEGIN    BLOCK "080404b0"    BEGIN      VALUE "FileDescription", "Test"      VALUE "FileVersion", "1, 1, 1, 0"      VALUE "InternalName", "Test"      VALUE "LegalCopyright", "Copyright (C) 2015"      VALUE "OriginalFilename", "Test.exe"      VALUE "ProductName", "Microsoft"      VALUE "ProductVersion", "V1.0"    END  END  BLOCK "VarFileInfo"  BEGIN    VALUE "Translation", 0x804, 1200  ENDEND

c. 接下來創(chuàng)建一個模板,利用SVN提供的占位符WCREV獲取版本號,WCNOW獲取編譯時間。模板可以直接復(fù)制Test.rc文件,更名為Test.rc2。修改上述代碼中的ProductVersion的值即可:

VALUE "ProductVersion", "V2.1.1.$WCREV$.(Build$WCNOW$)"

d. 那么何時進(jìn)行占位符的替換,隨后替換程序的資源文件Test.rc,準(zhǔn)確的將版本號與編譯時間編譯進(jìn)程序呢?VS提供了一個Build Events配置,我們選擇Pre-Build Event,增加一行代碼如下:

SubWCRev $(ProjectDir) $(ProjectDir)/Test.rc2 $(ProjectDir)/Test.rc

代碼的意思是在程序編譯之前,用SVN的腳本工具SubWCRev獲取到工程目錄的SVN號以及當(dāng)前的編譯時間,替換rc2文件中的占位符,覆蓋到rc文件中。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 永福县| 敖汉旗| 牡丹江市| 依兰县| 专栏| 黄冈市| 丹阳市| 科技| 三亚市| 上栗县| 从化市| 德阳市| 松潘县| 南雄市| 余干县| 远安县| 天峨县| 芦溪县| 宝兴县| 昭平县| 庆阳市| 赣榆县| 云浮市| 宽甸| 宁乡县| 交口县| 于都县| 兴安县| 上思县| 临清市| 蓝山县| 郯城县| 砀山县| 新平| 武威市| 红桥区| 湖口县| 宁武县| 衢州市| 东莞市| 乐昌市|