You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在w64devkit的app.rc文件中如何将version.txt作为.exe元数据置于.rsrc根目录

在w64devkit的app.rc文件中如何将version.txt作为.exe元数据置于.rsrc根目录

嘿,我来帮你搞定这个问题!你想把version.txt嵌入到.exe的.rsrc根目录下,而且不想把它归类到像ICON、MANIFEST这类预定义资源类型里,对吧?之前直接在RC文件里写version.txt导致windres报语法错误,是因为RC脚本要求必须明确指定资源的类型、ID/名称和文件路径,不能只写文件名。

先理清楚PE资源的结构逻辑

首先得明确一点:PE文件的资源系统是分层的,.rsrc目录下首先是资源类型(比如预定义的RT_ICON、RT_MANIFEST、RT_VERSION,或者你自定义的类型),然后是资源ID/名称,最后是语言ID。严格来说没法把文件直接放在.rsrc最根目录,但你可以通过自定义资源类型或名称,让它实现类似“根级显示”的效果。

方法1:将version.txt作为自定义根级资源

如果你想让version.txt作为一个独立的、类似VS_VERSION_INFO那样的根级资源项,可以在app.rc文件的现有内容后添加这一行:

2 "VERSION_FILE" "version.txt"
  • 2是资源ID(要避开已用的ID,比如你已经把1分给了MANIFEST和ICON,所以换个不冲突的数字就行)
  • "VERSION_FILE"是自定义的资源类型名称(你也可以直接写成"version.txt",让类型名和文件名一致)
  • "version.txt"是你要嵌入的本地文件路径

编译后在资源浏览器里,你会看到.rsrc下多了VERSION_FILE类型目录,里面就是嵌入的version.txt资源。

方法2:将version.txt作为RCDATA通用资源

如果只是想嵌入文件内容,不需要自定义类型,用预定义的RCDATA类型更通用,写法如下:

"version.txt" RCDATA "version.txt"

这里第一个"version.txt"是资源的显示名称,RCDATA是系统预定义的资源类型,第二个"version.txt"是本地文件路径。编译后它会出现在.rsrc\RCDATA\version.txt路径下,也是很常用的嵌入方式。

整合后的完整app.rc示例

把自定义资源的写法加到你现有的RC代码里,最终文件会是这样:

1 MANIFEST "app.manifest"
1 ICON "app.ico"
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,0
PRODUCTVERSION 1,0,0,0
FILEFLAGSMASK 0x0
FILEOS VOS_NT_WINDOWS32
FILETYPE VFT_APP
FILESUBTYPE 0x0L
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "040904b0"
        BEGIN
            VALUE "FileDescription", "sfsfsfo"
            VALUE "FileVersion", "tacobell"
            VALUE "InternalName", "errrertet"
            VALUE "LegalCopyright", "beellf©©©©©©"
            VALUE "OriginalFilename", "sffsgs.exe"
            VALUE "ProductName", "dssfesfdfsf"
            VALUE "ProductVersion", "1,0,0,0"
        END
    END
    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation", 0x409, 1200
    END
END

# 新增:将version.txt作为自定义根级资源
2 "VERSION_FILE" "version.txt"

用w64devkit的windres编译这个RC文件,生成的.exe里就会包含你要的version.txt资源啦。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 12:04:34