a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C > 正文

VC使用編譯時間作為版本號標識的方法

2020-02-24 14:31:37
字體:
來源:轉載
供稿:網友

初學者的童鞋一定遇到過手動更改軟件版本號的操作,那么有沒有一種方法,軟件版本號將自動更新與編譯時間?還真的有,武林技術頻道今天將和你分享VC使用編譯時間作為版本號標識的方法。

常用方法分兩步:

1. 得到編譯時間;

2. 設置基準時間,以編譯時間距基準時間的總天數的2倍作為版本號,適當情況還可加上初值;

其中第一步實現有兩種方法:

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

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

其它網友的補充

使用宏__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一夢同學的補充

一般來說,發布的正式軟件都會包含程序的svn版本號以及軟件的編譯版本和編譯時間等信息,但是這些東西并不是默認就存在的,需要我們進行一些步驟的處理。具體做法有幾種,萬變不離其宗的是,利用SVN自帶的指令獲取到版本號以及當前時間,填充模板當中的占位符,最后用替換后的模板覆蓋資源文件即可。這里只講最簡單的一種:
a. 首先需要給VC程序添加資源文件,假設程序名為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. 接下來創建一個模板,利用SVN提供的占位符WCREV獲取版本號,WCNOW獲取編譯時間。模板可以直接復制Test.rc文件,更名為Test.rc2。修改上述代碼中的ProductVersion的值即可:

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

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

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

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

以上就是關于VC使用編譯時間作為版本號標識的方法介紹,隨著IT行業的高速發展,這方面需求不斷增大,可以說是很有前景的一個專業。

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

圖片精選

主站蜘蛛池模板: 男人的天堂在线视频 | 亚洲午夜精品一区二区三区 | 国产免费视频在线 | 日韩精品在线看 | 精品美女在线观看视频在线观看 | 国产欧美精品 | av一级久久| 日本在线观看www | 欧美日本韩国一区二区三区 | 91精品国产综合久久精品 | 二区在线视频 | 成人网址在线观看 | 国产欧美日韩综合精品 | 三级在线观看视频 | 欧美精品一区二区三区一线天视频 | 亚洲三级在线免费观看 | 三级视频网站 | 一级视频在线观看 | 91精品国产乱码久久久久久久久 | 91国内产香蕉 | 91精品久久久久久久久中文字幕 | 久久精品欧美一区二区三区不卡 | 亚洲一区二区三区视频免费观看 | 91麻豆精品国产91久久久久久久久 | 日日操视频 | 99精品在线观看 | www.99久久久| 看亚洲a级一级毛片 | 美女久久| 成人欧美一区二区 | 日韩激情在线观看 | 在线区| www久久av| 久久精品视频亚洲 | 久久精品福利 | www.国产精品 | 国产精品国产精品国产专区不卡 | 国产精品日产欧美久久久久 | 亚洲视频一区二区三区 | 久热精品在线 | 欧美一级网 |