CodeBlocks中给工程添加版本信息的方法

CodeBlocks中自带了一个插件Autoversioning,给项目启用此插件后,自动在项目中添加了一个"version.h"头文件(文件名可自行命名),内容大致如下:

#ifndef VERSION_H
#define VERSION_H

namespace AutoVersion{
	
	//Date Version Types
	static const char DATE[] = "08";
	static const char MONTH[] = "12";
	static const char YEAR[] = "2013";
	static const char UBUNTU_VERSION_STYLE[] =  "13.12";
	
	//Software Status
	static const char STATUS[] =  "Alpha";
	static const char STATUS_SHORT[] =  "a";
	
	//Standard Version Type
	static const long MAJOR  = 1;
	static const long MINOR  = 0;
	static const long BUILD  = 7;
	static const long REVISION  = 39;
	
	//Miscellaneous Version Types
	static const long BUILDS_COUNT  = 11;
	#define RC_FILEVERSION 1,0,7,39
	#define RC_FILEVERSION_STRING "1, 0, 7, 39\0"
	static const char FULLVERSION_STRING [] = "1.0.7.39";
	
	//These values are to keep track of your versioning state, don't modify them.
	static const long BUILD_HISTORY  = 7;
	

}
#endif //VERSION_H

其中能够用于Resource中引用的两个宏是:"RC_FILEVERSION","RC_FILEVERSION_STRING",可以在工程的含有版本信息的资源文件中按如下引用:

#include "version.h"

1 VERSIONINFO
FILEVERSION RC_FILEVERSION
PRODUCTVERSION 1,0,0,0
FILEOS 0x00000004
FILETYPE 0x00000000
BEGIN
  BLOCK "StringFileInfo"
  BEGIN
    BLOCK "08040000"
    BEGIN
      VALUE "FileVersion", RC_FILEVERSION_STRING
      VALUE "ProductName", "myAPP\0"
      VALUE "ProductVersion", "1.0.0.0"
      VALUE "CompanyName", "Bowa's Studio\n"
      VALUE "LegalCopyright", "(C)Bowa's Studio, 2013\n"
    END
  END
  BLOCK "VarFileInfo"
  BEGIN
    VALUE "Translation", 0x0804, 0x0000
  END
END


由于CodeBlocks的Autoversioning插件不维护诸如产品名称、程序描述、公司名称、版权等信息,因为基本上这些信息属于静态类,如果说工程项目组中有多个需要包含此类版本信息时,建议单独写一个头文件(比如product.h),然后在版本资源文件中引入就可以,参考如下:

#include "version.h"
#include "product.h"

1 VERSIONINFO
FILEVERSION RC_FILEVERSION
PRODUCTVERSION 1,0,0,0
FILEOS 0x00000004
FILETYPE 0x00000000
BEGIN
  BLOCK "StringFileInfo"
  BEGIN
    BLOCK "08040000"
    BEGIN
      VALUE "FileVersion", RC_FILEVERSION_STRING
      VALUE "ProductName", PRODUCTNAME_STRING
      VALUE "ProductVersion", PRODUCTVERSION_STRING
      VALUE "CompanyName", COMPANYNAME_STRING
      VALUE "LegalCopyright", LEGALCOPYRIGHT_STRING
    END
  END
  BLOCK "VarFileInfo"
  BEGIN
    VALUE "Translation", 0x0804, 0x0000
  END
END

这样既能利用Autoversioning插件的自动文件版本号管理,也能形成完整的产品包信息



通过引用头文件宏的方式配置的资源文件,用ResED工具打开时会出现问题,但是用ResEdit工具就能正常识别并直接转换。其中ResED很久没有更新过了,两个工具都能在win7 x64下正常使用。我在CSDN上做了文件备份,可以前往下载




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值