rc文件帮助
在 Windows 资源文件 (.rc) 中,这些关键字用于定义可执行文件的版本信息结构,以下是详细解释:
核心结构解析
FILEFLAGSMASK- 作用:指定哪些位在
FILEFLAGS字段中是有效的 - 值:通常设置为
VS_FFI_FILEFLAGSMASK(预定义值0x3FL) - 含义:表示只检查
FILEFLAGS的低 6 位
- 作用:指定哪些位在
FILEFLAGS- 作用:描述文件属性标志
- 常用值:
0x0L:正式版VS_FF_DEBUG(0x1L):调试版本VS_FF_PRERELEASE(0x2L):预发布版VS_FF_PATCHED(0x4L):已修补版本VS_FF_PRIVATEBUILD(0x8L):私有构建
- 示例:
0x0L表示标准发布版本
FILEOS- 作用:指定文件支持的操作系统
- 常用值:
VOS_NT_WINDOWS32:Windows NT 32 位系统VOS__WINDOWS32:通用 Windows 32 位VOS_DOS_WINDOWS16:Windows 3.x 16 位
FILETYPE- 作用:定义文件类型
- 常用值:
VFT_APP:应用程序 (EXE)VFT_DLL:动态链接库VFT_DRV:设备驱动VFT_FONT:字体文件VFT_VXD:虚拟设备驱动
FILESUBTYPE- 作用:当
FILETYPE需要细分时指定子类型 - 对
VFT_APP:必须设为VFT2_UNKNOWN(无子类型) - 对
VFT_DRV:可指定打印机/键盘等子类型 - 对
VFT_FONT:可指定矢量/位图字体
- 作用:当
信息块解析
BLOCK "StringFileInfo"- 作用:包含所有语言特定的字符串信息
- 结构:
BLOCK "StringFileInfo" BEGIN BLOCK "<LangID><CodePage>" // 如 "040904B0" BEGIN VALUE "Key", "Value" // 实际显示的版本信息 END END
BLOCK "VarFileInfo"- 作用:定义文件的翻译信息(语言和代码页)
- 结构:
BLOCK "VarFileInfo" BEGIN VALUE "Translation", <LangID>, <CodePage> END - 示例:
VALUE "Translation", 0x0804, 1200表示简体中文 Unicode
关键概念说明
| 部分 | 功能 | 典型值 |
|---|---|---|
| 文件属性区 | 定义二进制特性 | |
FILEFLAGSMASK | 有效标志位掩码 | VS_FFI_FILEFLAGSMASK |
FILEFLAGS | 实际版本标志 | 0x0L (正式版) |
FILEOS | 目标操作系统 | VOS_NT_WINDOWS32 |
FILETYPE | 文件类型 | VFT_APP (应用程序) |
FILESUBTYPE | 文件子类型 | VFT2_UNKNOWN |
| 字符串信息区 | 用户可见信息 | |
StringFileInfo | 多语言字符串容器 | |
<LangID><CodePage> | 语言标识 | “080404B0” (简体中文) |
| 变量信息区 | 语言配置 | |
VarFileInfo | 语言定义容器 | |
Translation | 默认语言设置 | 0x0804, 1200 |
工作流程
- 系统先读取
VarFileInfo确定默认语言 - 在
StringFileInfo中查找匹配的LangID+CodePage块 - 显示对应语言的字符串信息
- 文件属性区 (
FILEOS等) 提供系统级元数据
⚠️ 注意:当修改语言时,必须同步更新:
StringFileInfo中的语言块 ID (如 080404B0)VarFileInfo中的 Translation 值- 实际字符串内容(如需本地化)