`
gaofen100
  • 浏览: 1227867 次
文章分类
社区版块
存档分类
最新评论

Windows 资源文件(.rc文件)小记

 
阅读更多

在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 ResourceVS_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 结构

看不太懂,暂且放到这儿,恩。

参考


分享到:
评论

相关推荐

    VS2010 VC++创建.rc资源文件(二)

    在Visual Studio 2010 (VS2010) 中,使用VC++进行Windows应用程序开发时,资源文件(.rc文件)起着至关重要的作用。资源文件是包含各种非代码资源,如对话框、菜单、图标、字符串、位图等的文本文件,它们为程序提供...

    android系统.rc文件学习包含init.rc,init.usb.rc,init.zygote64.rc,init-debug.rc,ueventd.rc

    Android Init Language是android系统很重要的组成 文件来自于\system\core\rootdir 里面有init.rc,init.usb.rc,init.zygote64.rc,init-debug.rc,ueventd.rc

    VS2010 VC++创建.rc资源文件(一)

    在Visual Studio 2010 (VS2010) 中使用VC++进行Windows应用程序开发时,资源文件(.rc)扮演着至关重要的角色。资源文件是包含各种非代码元素,如窗口、菜单、图标、对话框等的文本文件,它们为程序提供了用户界面。...

    spring-framework-3.1.0.RC1-with-docs.zip

    8. **资源处理**:Spring提供了对Web应用中资源的统一处理,如静态文件和主题模板。3.1.0.RC1增强了资源处理能力,支持自定义资源处理器和策略。 9. **异步方法执行**:此版本支持通过`@Async`注解实现方法的异步...

    init.rc文件解析

    - **自定义启动行为**:通过修改`init.rc`文件,开发者可以根据需要自定义系统的启动行为,如启动额外的服务、调整资源分配等。 - **优化性能**:通过对服务和资源管理的精细化控制,可以有效提升系统的启动速度和...

    Android init.rc文件详解

    Android init.rc 文件详解 Android init.rc 文件是 Android 系统的初始化配置文件,负责在系统启动时执行一系列命令和服务来初始化系统环境。该文件以行为单位,由以空格间隔的语言符号组成。每个行为可以包含多个...

    10.0 init.rc中data下创建文件节点失败.zip

    在Android系统中,`init.rc` 是一个非常重要的配置文件,它在系统启动时执行一系列初始化任务,包括启动服务、创建文件系统对象等。当我们谈论"10.0 init.rc中data下创建文件节点失败.zip"这个主题时,显然我们关注...

    rc 资源编辑器-用于可视化编辑资源文件

    rc资源编辑器能够编辑rc资源文件.且是可视化编辑...........非常好用

    把init.rc切换usb模式用脚本替换

    把init.rc切换usb模式用脚本替换, 避免特殊需求对代码修改风险. 附件是展讯7731平台切换到的mtp模式的实现,pid,vid等可以改. 格式为: adb shell ./mtp.sh & #也可以把第一行屏蔽,然后执行./mtp.sh

    VC6 工程支持多个 rc 文件

    在Microsoft Visual C++ 6.0(简称VC6)中,开发Windows应用程序时,资源文件(rc文件)是至关重要的。资源文件包含了程序的各种非代码元素,如菜单、对话框、图标、字符串表等。一个工程默认只有一个主rc文件,但...

    NuMega.DriverStudio.v2.5.RC1.iso.rar

    描述中同样提到了"NuMega.DriverStudio.v2.5.RC1.iso.rar",这表明这个压缩文件包含了一个ISO镜像文件,ISO格式通常用于存储光盘映像,比如安装光盘。RAR是一种流行的压缩文件格式,用于减小文件大小便于传输和存储...

    Android 启动流程(init.c 和init.rc分析)

    - **配置文件解析**:通过`parse_config_file()`函数解析`/init.rc`配置文件,将其中定义的服务和操作加入到链表中。 - **硬件信息获取**:通过`get_hardware_name()`获取设备硬件信息,并据此选择特定的硬件配置...

    GoRc(命令行工具) - 转换 .rc 为 .res 或 .obj

    在Windows应用程序开发中,.rc文件是源代码形式的资源文件,它包含了诸如对话框、菜单、图标、字符串等资源定义。而.res和.obj文件则是这些资源的编译结果,它们可以直接被链接到可执行文件中。 1. **.rc文件**:...

    VS2017中出现致命错误 RC1015: 无法打开包含文件 'afxres.h' 问题

    这个错误通常发生在尝试编译资源文件(如.rc文件)时,而系统找不到必需的头文件“afxres.h”。该头文件是Microsoft Visual C++库的一部分,它包含了Windows应用程序所需的资源定义。为了解决这个问题,我们需要检查...

    VC6 支持多个 rc 资源文件

    通过以上方法,VC6能够有效地支持和管理多个rc资源文件,提供了一种强大而灵活的方式来组织和构建Windows应用程序的用户界面。这对于大型项目或者需要高效团队协作的项目尤其重要。在实际开发过程中,应根据项目的...

    npp.6.5.RC.zip

    "npp.6.5.RC.7z"是6.5 RC版本的主要程序文件,包含了Notepad++的所有功能。7z是一种高压缩比的文件格式,可以有效地减小文件体积,便于用户存储和传输。解压后,只需双击运行"notepad++.exe",即可启动编辑器开始...

    精彩编程与编程技巧-如何使用资源文件...

    2. **编译资源文件**:使用`RC.EXE`工具(通常位于Visual Basic安装目录下的`Wizards`文件夹中)来编译资源文件。可以通过DOS命令行执行以下命令来完成编译过程: ```bash C:\rc /rc:\test.test.rc ``` 这个命令...

    RC文件编辑工具

    RC文件是Windows操作系统中用来定义应用程序界面和非代码资源(如图标、菜单、对话框等)的文本文件。在开发Windows应用程序时,程序员通常会用到这些文件来定制应用的外观和交互元素。 RC文件的内容通常包括以下...

    RC 资源文件字串抽取器

    RC文件是Windows应用程序开发中常见的资源脚本文件,它包含了诸如对话框(Dialogs)、菜单(Menus)、字符串表(String Tables)等用户界面元素的定义。通过这个工具,开发者可以方便地将这些字符串导出到XML文件...

    致命错误 RC1015: 无法打开包含文件 'afxres.h'. 执行 rc.exe 时出错解决办法

    执行 rc.exe 时出错解决办法 网上大部分人都说是安装路径缺错,或者只贴出这一个头文件其实并非如此 我特地把mfc下整个目录全部覆盖测试,亲测完美解决。 找到你对应目录将其完全覆盖,只保证vc++6.0 目录参考:C:\...

Global site tag (gtag.js) - Google Analytics