如何在Visual Studio 2017 C/C++项目中添加可执行文件元数据
在VS2017 C/C++项目中为可执行文件添加元数据的方法
嘿,这个需求我太熟了!给exe加上版本、作者这类元数据,最直接靠谱的方式就是用资源文件配置,下面一步步来:
步骤1:给项目添加版本资源文件
- 右键你的C/C++项目 → 选择「添加」→「资源」
- 在弹出的「添加资源」对话框里,找到「Version」选项,点击「新建」。VS会自动生成两个文件:
resource.h头文件和一个.rc格式的资源文件(比如默认叫Resource.rc),直接加到你的项目里。
步骤2:编辑版本元数据
- 双击刚生成的
.rc文件,VS会打开可视化的资源编辑器,默认就显示版本信息的编辑界面。 - 你可以直接在界面里填写所有需要的元数据:
文件版本:比如填1.0.0.0这种标准版本号格式产品版本:可以和文件版本一致,也可以单独设置公司名称:你的名字、团队名或者公司名文件描述:简单说明这个程序的用途,比如「个人桌面小工具」版权:写上你的版权声明,比如「© 2024 XXX 保留所有权利」原始文件名:最终生成的exe文件名备注:这里可以直接填作者信息,比如「作者:张三」
- 填完别忘了按Ctrl+S保存资源文件哦!
步骤3:编译验证元数据
- 重新编译你的项目,生成可执行文件。
- 找到生成的exe,右键→「属性」→切换到「详细信息」标签页,就能看到你刚才填写的所有元数据已经生效啦!
额外技巧:手动编辑RC文件(适合进阶用户)
如果你更喜欢直接写代码的方式,也可以打开.rc文件,手动修改版本资源的脚本内容,比如:
VS_VERSION_INFO VERSIONINFO FILEVERSION 1,0,0,0 PRODUCTVERSION 1,0,0,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x40004L FILETYPE 0x1L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904B0" BEGIN VALUE "CompanyName", "我的个人工作室" VALUE "FileDescription", "测试用C++程序" VALUE "FileVersion", "1.0.0.0" VALUE "InternalName", "MyTestApp" VALUE "LegalCopyright", "© 2024 我的个人工作室" VALUE "OriginalFilename", "MyTestApp.exe" VALUE "ProductName", "MyTestApp" VALUE "ProductVersion", "1.0.0.0" VALUE "Comments", "作者:李四" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1200 END END
这种方式更灵活,适合需要批量修改或者自动化配置的场景。
内容的提问来源于stack exchange,提问作者Cpp plus 1




