【Qt 学习之路】Qt在Windows上设置应用程序信息

目录

1、简述

2、背景

3、配置

4、添加信息文件

5、源代码


1、简述

资源文件:Windows上是RC文件,Ios和Osx上是plist文件,Android上是xml文件,linux上是普通文件(Linux可以说就是一个文件系统)。
其实这些都是不同样式的资源文件,所以,这里准备一个公共宏,具体哪个系统再具体区分就好了。

这些资源文件目的就是为了方便项目中的资源统一管理,例如我们在Window上,通常会用到RC资源文件,为exe设置详细信息,其中包括:文件说明、产品名称、产品版本、版权等信息。

2、背景

在Windows上,编一个Release的程序,准备发布时:

会发现程序的应用程序信息都是空的:

3、配置

添加resource.rc到项目当中。

4、添加信息文件

最好用一个文件记录配置信息,这么处理:

#ifndef ALVERSION
#define ALVERSION
 
 
#define VER_FILEVERSION 1,0,0,0 //文件版本
#define VER_FILEVERSION_NB 100 //内部版本
#define VER_PRODUCTVERSION 1,0,0,0
#define VER_PRODUCTVERSION_STR "1.0.0.0" //产品版本
#define VER_COMPANYNAME_STR "shashidi"
#define VER_COMMENTS_STR "shashidi- Remote display"
#define VER_FILEDESCRIPTION_STR "shashidi for win32" //文件说明
#define VER_INTERNALNAME_STR "shashidi"
#define VER_LEGALCOPYRIGHT_STR "Copyright (C) United shashidi" //版权
#define VER_LEGALTRADEMARKS1_STR "All rights reserved"
#define VER_ORIGINALFILENAME_STR "shashidi.exe" //原始文件名
#define VER_PRODUCTNAME_STR "shashidi" //产品名称
#define VER_COMPANYDOMAIN_STR "shashidi.org"
 
 
#endif // ALVERSION

5、源代码

rc文件代码:

IDI_ICON1 ICON "version.ico"

#if defined(UNDER_CE)
#include <winbase.h>
#else
#include <winver.h>
#endif


VS_VERSION_INFO VERSIONINFO
    FILEVERSION 1,0,0,10
    PRODUCTVERSION 1,0,0,10
    FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
    FILEFLAGS VS_FF_DEBUG
#else
    FILEFLAGS 0x0L
#endif
    FILEOS VOS__WINDOWS32
    FILETYPE VFT_DLL
    FILESUBTYPE 0x0L
    BEGIN
        BLOCK "StringFileInfo"
        BEGIN
            BLOCK "080404b0"
            BEGIN
                VALUE "CompanyName", "中国软件股份有限公司\0"
                VALUE "FileDescription", "软件名称\0"
                VALUE "FileVersion", "1.0.0.10\0"
                VALUE "ProductVersion", "1.0.0.10\0"
                VALUE "LegalCopyright", "版权所有 (C) 中国软件股份有限公司\0"
                VALUE "LegalTrademarks", "中国软件股份有限公司\0"
                VALUE "OriginalFilename", "version.exe\0"
                VALUE "ProductName", "软件名称\0"
                VALUE "InternalName", "version.exe\0"
           END
        END
        
        BLOCK "VarFileInfo"
        BEGIN
            VALUE "Translation", 0x804, 1200
        END        
    END

进一步优化

IDI_ICON1               ICON    DISCARDABLE     "application_win.ico"
 
 
#include "alversion.h"
#if defined(UNDER_CE)
#include <winbase.h>
#else
#include <winver.h>
#endif
 
VS_VERSION_INFO VERSIONINFO
FILEVERSION VER_FILEVERSION
PRODUCTVERSION VER_PRODUCTVERSION
#ifdef _DEBUG
FILEFLAGS 0x2dL
#else
FILEFLAGS 0x2cL
#endif
FILEOS 0x40004L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904E4"
BEGIN
VALUE "Comments", VER_COMMENTS_STR
VALUE "CompanyName", VER_COMPANYNAME_STR
VALUE "FileDescription", VER_FILEDESCRIPTION_STR
VALUE "FileVersion", VER_PRODUCTVERSION
VALUE "InternalName", VER_INTERNALNAME_STR
VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR
VALUE "LegalTrademarks", VER_LEGALTRADEMARKS1_STR
VALUE "OriginalFilename", VER_ORIGINALFILENAME_STR
VALUE "PrivateBuild", VER_FILEDESCRIPTION_STR
VALUE "ProductName", VER_PRODUCTNAME_STR
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1252
END
END

可执行程序添加一个图标

1、创建rc文件

   IDI_ICON1               ICON    DISCARDABLE     "application_win.ico"(不要用中文)

2、Qt的pro或pri文件中添加rc文件就可以了

win32:RC_FILE = icon/c5_applicationicon.rc

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沙振宇

你的鼓励将是我创作的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值