在windows下使用Qt时,通常会用到Windows的资源文件(给exe设置图标和版本信息等),比如命名为 main.rc
#include "winver.h"
IDI_ICON1 ICON "main.ico"
IDI_ICON2 ICON "main2.ico"
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,0
PRODUCTVERSION 1,0,0,0
FILEFLAGS 0x0L
FILEFLAGSMASK 0x3fL
FILEOS VOS_NT_WINDOWS32
FILETYPE VFT_APP
FILESUBTYPE VFT2_UNKNOWN
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "000004b0"
BEGIN
VALUE "CompanyName", "Hermes Microvision Inc"
VALUE "FileDescription", "HMI Image EZ USB(2rd)"
VALUE "FileVersion", "1.0.0.0"
VALUE "LegalCopyright", "Copyright (C) 2009-2011 Hermes Microvision Inc"
VALUE "InternalName", "hmiezusb"
VALUE "OriginalFilename", "hmiezusb"
VALUE "ProductName", "HMI Image EZ USB(2rd)"
VALUE "ProductVersion", "1.0.0.0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x0, 1200
END
END
然后,在 .pro 文件内,添加
win32:RC_FILE = main.rc
由于是Windows平台相关的东西,Qt manual 对于 .rc 几乎没有任何介绍(只在Setting the Application Icon一文中简单用到一点点)。
图标
见 MSDNICON Resource一文:
格式:
nameID ICON filename
例子:
IDI_ICON1 ICON "main.ico" IDI_ICON2 ICON "main2.ico"
其中:
| nameID | 16位无符号整数 或 唯一的名字 |
| filename | 如果不在工作目录下需要使用完整路径,需要使用引号扩住 |
VERSIONINFO
见MSDNVERSIONINFO Resource和VS_FIXEDFILEINFO Structure
格式:
versionID VERSIONINFO fixed-info BEGIN block-statement . . . END
其中,fixed-info 信息:
| 字段 | 实例值 | |
| FILEVERSION | 1,0,0,0 | 文件版本,4个16位整数,(其实是2个32位整数) |
| PRODUCTVERSION | 1,0,0,0 | 产品版本,同上 |
| FILEFLAGS | 0x0L | 文件属性 |
| FILEFLAGSMASK | 0x0L | 属性的掩模 |
| FILEOS | VOS_NT_WINDOWS32 | 用于何种操作系统 |
| FILETYPE | VFT_APP | 文件一般类型(对于dll,类型为 VFT_DLL) |
| FILESUBTYPE | VFT2_UNKNOWN | 细分的类型 |
对应的结构体:
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;
fix 字段后面是可变字段:
-
0个或多个 StringFileInfo 结构
-
1 个或多个 StringTable 结构
-
-
0个或多个 VarFileInfo 结构
看不太懂,暂且放到这儿,恩。
参考
-
http://msdn.microsoft.com/en-us/library/aa381058%28v=VS.85%29.aspx
-
http://msdn.microsoft.com/en-us/library/ms646997%28v=vs.85%29.aspx
-
http://msdn.microsoft.com/en-us/library/aa381018%28v=VS.85%29.aspx
Qt中使用Windows资源文件
本文介绍了如何在Qt项目中利用Windows资源文件设置应用程序图标和版本信息等,并提供了详细的.rc文件配置示例。
5159

被折叠的 条评论
为什么被折叠?



