Qt之Windows资源文件(.rc文件)
简述
在Windows下使用Qt时,通常会用到Windows的资源文件 - 为exe设置信息,其中包括:文件说明、产品名称、产品版本、版权等信息。。。
由于是Windows平台相关的东西,Qt助手中对于rc文件几乎没有任何介绍(在Setting the Application Icon一文中简单提到)。
资源信息
效果
实现
首先,我们添加一个名为version.h的头文件,包含资源信息。
#ifndef VERSION_H
#define VERSION_H
#define PRODUCT_ICON "myapp.ico" // 图标
#define FILE_VERSION 4,0,2,666 // 文件版本
#define FILE_VERSION_STR "4.0.2.666"
#define PRODUCT_VERSION 4,0,2,666 // 产品版本
#define PRODUCT_VERSION_STR "4.0.2.666"
#define COMPANY_NAME "Digia"
#define INTERNAL_NAME "Qt Creator.exe"
#define FILE_DESCRIPTION "Qt Creator based on Qt 5.7.0 (MSVC 2013, 32 bit)" // 文件说明
#define LEGAL_COPYRIGHT "Copyright 2008-2016 The Qt Company Ltd. All rights reserved." // 版权
#define ORIGINAL_FILE_NAME "Qt Creator.exe" // 原始文件名
#define PRODUCT_NAME "Qt Creator" // 产品名称
#define ORGANIZATION_DOMAIN "https://www.qt.io/" // 域名
#endif // VERSION_H
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
然后,添加资源文件并进行设置。。。例如:myapp.rc
#include "winres.h"
#include "version.h"
// 图标
IDI_ICON1 ICON PRODUCT_ICON
// 版本信息
VS_VERSION_INFO VERSIONINFO
FILEVERSION FILE_VERSION
PRODUCTVERSION PRODUCT_VERSION
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "080404b0"
BEGIN
VALUE "CompanyName", COMPANY_NAME
VALUE "FileDescription", FILE_DESCRIPTION
VALUE "FileVersion", FILE_VERSION_STR
VALUE "InternalName", INTERNAL_NAME
VALUE "LegalCopyright", LEGAL_COPYRIGHT
VALUE "OriginalFilename", ORIGINAL_FILE_NAME
VALUE "ProductName", PRODUCT_NAME
VALUE "ProductVersion", PRODUCT_VERSION_STR
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x804, 1200
END
END
最后,在.pro文件中,添加:
RC_FILE += myapp.rc
图标
参考MSDN:ICON resource
为指定应用程序定义图标:
nameID ICON filename
参数
nameID
唯一名称或一个16位无符号整数值,识别资源。filename
包含该资源的文件名称。该名称必须是有效的文件名;如果文件不在当前工作目录,那么必须使用完整路径。路径应该是带引号的字符串。
示例
下面示例,定义了两个资源图标:
desk1 ICON "desk.ico"
11 ICON "custom.ico"
可参考:Using Icons
VERSIONINFO
见MSDN:VERSIONINFO resource 和 VS_FIXEDFILEINFO structure
定义一个版本信息资源。该资源包含有关文件的版本号、原始文件名等信息。该资源用于与Version Information一起使用。
格式化VERSIONINFO
有两种方式格式化VERSIONINFO:
versionID VERSIONINFO fixed-info { block-statement . . . }
- 1
或者
versionID VERSIONINFO
fixed-info
BEGIN
block-statement
. . .
END
参数
versionID
版本信息资源标识符。此值必须为1。fixed-info
版本信息,如文件版本和操作系统。此参数包括以下语句:
| 字段 | 描述 |
|---|---|
| FILEVERSION version | 文件的二进制版本号。该版本由四个16位整数定义。例如:“FILEVERSION 3,10,0,61” |
| PRODUCTVERSION version | 产品版本,同上 |
| FILEFLAGSMASK fileflagsmask | 属性的掩模 |
| FILEFLAGS fileflags | 文件属性 |
| FILEOS fileos | 用于何种操作系统 |
| FILETYPE filetype | 文件一般类型(对于dll,类型为 VFT_DLL) |
| FILESUBTYPE subtype | 文件子类型 |
block-statement
指定一个或多个版本信息块。块包含字符串信息或可变信息。欲了解更多信息,请参考:StringFileInfo BLOCK 或 VarFileInfo BLOCK
对应的结构体:
typedef struct tagVS_FIXEDFILEINFO {
DWORD dwSignature;
DWORD dwStrucVersion;
DWORD dwFileVersionMS;
DWORD dwFileVersionLS;
DWORD dwProductVersionMS;
DWORD dwProductVersionLS;
DWORD dwFileFlagsMask;
DWORD dwFileFlags;
DWORD dwFileOS;
DWORD dwFileType;
DWORD dwFileSubtype;
DWORD dwFileDateMS;
DWORD dwFileDateLS;
} VS_FIXEDFILEINFO;
http://blog.csdn.net/liang19890820/article/details/51880826
Qt之Windows资源文件(.rc文件)的更多相关文章
- Visual Studio下,打开资源视图rc文件,提示在另一个编辑器中打开
在网上搜索关键字: rc文件 提示在另一个编辑器中打开 很多地方的回答都是说: rc文件以代码形式打开了,只要关掉后再打开就可以了. 但是,很多时候,当关闭掉RC的代码文件以后,发现VS的RC文件 ...
- 利用Windows资源监视器解决文件夹无法改名无法删除问题
在win7等Windows系统操作文件夹更名.删除时经常会报错,操作无法完成,balabala 这个时候仅凭在用的软件去一个一个找是很难的,即便软件全关了,还有后台进程,,,奔溃吧 好了,现在我们有了 ...
- MFC关于.rc文件 .rc2文件
.rc文件和.rc2文件 c和rc2都是资源文件,包含了应用程序中用到的所有的资源. 两者不同在于:rc文件中的资源可以直接在VC集成环境中以可视化的方法进行编辑和修改; 而rc2中的资源不能在VC的 ...
- Qt之添加Windows资源文件(.rc文件)
简述 在Windows下使用Qt时,通常会用到Windows的资源文件 - 为exe设置信息,其中包括:文件说明.产品名称.产品版本.版权等信息... 由于是Windows平台相关的东西,Qt助手中对 ...
- Qt之生成Window资源文件(.rc 文件)
简述 qmake 可以随意地自动生成一个适当填充的 Windows 资源文件.本节主要讲解如何用 qmake 处理一个 Windows 资源文件,并将其链接到一个可执行应用程序(EXE)或动态链接库( ...
- [Windows] VS打开资源文件(.rc)时显示 error RC2247 : SYMBOL name too long
源解决方案:error RC2247 : SYMBOL name too long 解决方法: 将所有要包含的文件用 APSTUDIO_HIDDEN_SYMBOLS 宏包起来,保存后关闭当前的资源文件 ...
- Qt给应用程序添加版本信息(对rc文件的设置,可利用QT内置变量)
作者:daodaoliang 时间:2016年7月11日16:12:09 版本:V 0.0.4 邮箱:daodaoliang@yeah.net 0. 环境说明 系统环境: win10 64位 Qt环境 ...
- Qt自动生成.rc文件并配置对应属性 程序图标 版本 描述等
Qt项目配置文件pro里需要如下配置,进行qmake,build后会自动生成.rc文件,并将对应的信息写入文件中 VERSION = 1.0.0.1 RC_ICONS = "http.ico ...
- 设置程序版本等信息(可直接修改pro文件设置,但是更推荐使用rc文件设置)
Qt版本:5.2.0 在.pro文件中设置版本等信息 VERSION = 1.2.3 QMAKE_TARGET_PRODUCT = 产品名称QMAKE_TARGET_COMPANY = 公司QMAKE ...
随机推荐
- DLNA架构在机顶盒上播放云存储文件的实现
DLNA 架构在机顶盒上播放云存储文件的实现 摘要: 随着越来越多的数码设备,音像设备等对 UPNP 协议的支持和普及,业界对多媒体内容提供服务的需求越越来越强烈,为了实现遵循 UPNP 协议和 ...
- [置顶] Responder一点也不神秘————iOS用户响应者链完全剖析
这篇文章想跟大家分享的主旨是iOS捕获用户事件的各种情况,以及内部封装的一些特殊事件. 我们先从UIButton谈起,UIButton大家使用的太多了,他特殊的地方就在于其内置的普通Default/高 ...
- ajax 调用后台接口示例
$(function(){ var _del_time_list = $("select[name='del_time_list']"); var _del_table_name ...
- What’s the difference between an interface and an abstract class in Java?
原文 What’s the difference between an interface and an abstract class in Java? It’s best to start answ ...
- 《数据通信与网络》笔记--IPSec
1.IP层的安全:IPSec IP层安全(IP security,IPsec)是由因特网工程任务组(IETF)设计用来为IP层的分组提供安全的一组协议.IPsec帮助 生成经过鉴别的与安全的IP层的分 ...
- XHTML使用规范
XHTML元素语法: 1.XHTML元素必须正确嵌套 2.XHTML元素必须始终闭合 3.XHTML元素必须小写 4.XHTML文档必须有一个更元素 XHTML属性语法规则: 1 ...
- handsontable常规配置的中文API
常规配置: 1.固定行列位置 fixedRowsTop:行数 //固定顶部多少行不能垂直滚动 fixedColumnsLeft:列数 //固定左侧多少列不能水平滚动 2.拖拽行头或列头改变行或列的大小 ...
- php 对象的一些特性
class person { private $name; private $age = 2; public function __construct($name,$age) { $this-> ...
- PC--CSS常识
1.不要使用过小的图片做背景平铺.这就是为何很多人都不用 1px 的原因,这才知晓.宽高 1px 的图片平铺出一个宽高 200px 的区域,需要 200*200=40, 000 次,占用资源.2.无 ...
- [Java 并发] Java并发编程实践 思维导图 - 第一章 简单介绍
阅读<Java并发编程实践>一书后整理的思维导图.