常用方法分兩步:
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了屯昌免費(fèi)建站歡迎大家使用!
1. 得到編譯時(shí)間;
2. 設(shè)置基準(zhǔn)時(shí)間,以編譯時(shí)間距基準(zhǔn)時(shí)間的總天數(shù)的2倍作為版本號(hào),適當(dāng)情況還可加上初值;
其中第一步實(shí)現(xiàn)有兩種方法:
1. 直接使用系統(tǒng)宏:CString OcxTime = __DATE__;
2. 在編譯選項(xiàng)的Pre-link Step中調(diào)用批處理文件.bat:
@echo off echo #pragma once>"Ver.h" echo #define APP_VER_NUM "%data%">>"Ver.h"
其它網(wǎng)友的補(bǔ)充
使用宏__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一夢(mèng)同學(xué)的補(bǔ)充
一般來說,發(fā)布的正式軟件都會(huì)包含程序的svn版本號(hào)以及軟件的編譯版本和編譯時(shí)間等信息,但是這些東西并不是默認(rèn)就存在的,需要我們進(jìn)行一些步驟的處理。具體做法有幾種,萬(wàn)變不離其宗的是,利用SVN自帶的指令獲取到版本號(hào)以及當(dāng)前時(shí)間,填充模板當(dāng)中的占位符,最后用替換后的模板覆蓋資源文件即可。這里只講最簡(jiǎn)單的一種:
a. 首先需要給VC程序添加資源文件,假設(shè)程序名為Test,則資源文件為Test.rc
b. 向資源文件中添加新的資源項(xiàng)——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 0x0L BEGIN 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 END END
c. 接下來創(chuàng)建一個(gè)模板,利用SVN提供的占位符WCREV獲取版本號(hào),WCNOW獲取編譯時(shí)間。模板可以直接復(fù)制Test.rc文件,更名為Test.rc2。修改上述代碼中的ProductVersion的值即可:
VALUE "ProductVersion", "V2.1.1.$WCREV$.(Build$WCNOW$)"
d. 那么何時(shí)進(jìn)行占位符的替換,隨后替換程序的資源文件Test.rc,準(zhǔn)確的將版本號(hào)與編譯時(shí)間編譯進(jìn)程序呢?VS提供了一個(gè)Build Events配置,我們選擇Pre-Build Event,增加一行代碼如下:
SubWCRev $(ProjectDir) $(ProjectDir)\Test.rc2 $(ProjectDir)\Test.rc
代碼的意思是在程序編譯之前,用SVN的腳本工具SubWCRev獲取到工程目錄的SVN號(hào)以及當(dāng)前的編譯時(shí)間,替換rc2文件中的占位符,覆蓋到rc文件中。
分享題目:VC使用編譯時(shí)間作為版本號(hào)標(biāo)識(shí)的方法
URL鏈接:http://aaarwkj.com/article38/igdjsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、品牌網(wǎng)站設(shè)計(jì)、軟件開發(fā)、網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)