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

如何在MS VS 2022的C++ RC文件中设置Comments、PrivateBuild、SpecialBuild属性?

在VS 2022的C++ RC文件中正确设置Comments、PrivateBuild和SpecialBuild属性

你的RC文件存在两处关键错误,导致这三个属性无法在生成的EXE属性中正常显示:

错误1:FILEFLAGS使用了错误的宏前缀

在_DEBUG分支中,你误用了VER_FF_PRIVATEBUILD和VER_FF_SPECIALBUILD,但VS_VERSION_INFO的FILEFLAGS字段需要使用VS_FF_开头的宏定义(对应verrsrc.h中的标准定义),VER前缀的宏属于旧版兼容定义,无法正确触发属性显示。

错误2:FILEFLAGSMASK重复定义了VS_FF_PATCHED

虽然不影响功能,但冗余定义会导致代码混乱,建议清理重复项。

修正后的完整RC代码片段

// magic numbers are defined in
// C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\um\verrsrc.h

// Microsoft Visual C++ generated resource script.
//
#include "resource.h"

#define APSTUDIO_READONLY_SYMBOLS
#include "afxres.h"

#undef APSTUDIO_READONLY_SYMBOLS

/////////////////////////////////////////////////////////////////////////////
// English (U.K.) resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK
#pragma code_page(1252)
#endif //_WIN32

#ifdef APSTUDIO_INVOKED

1 TEXTINCLUDE
BEGIN
    "resource.h\0"
END

2 TEXTINCLUDE
BEGIN
    "#include \"afxres.h\"\r\n"
    "\0"
END

3 TEXTINCLUDE
BEGIN
    "\r\n"
    "\0"
END

#endif    // APSTUDIO_INVOKED

VS_VERSION_INFO VERSIONINFO
FILEVERSION 1.2.3.4
PRODUCTVERSION 1.2.3.5
// FILEFLAGSMASK 0x17L  // VS_FF_DEBUG | VS_FF_PRERELEASE | VS_FF_PATCHED

// 修正:移除重复的VS_FF_PATCHED
FILEFLAGSMASK  VS_FF_DEBUG | VS_FF_PRERELEASE | VS_FF_PATCHED | VS_FF_PRIVATEBUILD | VS_FF_SPECIALBUILD
#ifdef _DEBUG
 // 修正:将VER_FF_前缀改为VS_FF_
 FILEFLAGS ( VS_FF_PRIVATEBUILD | VS_FF_SPECIALBUILD )
#else
 FILEFLAGS ( VS_FF_DEBUG | VS_FF_PRIVATEBUILD | VS_FF_SPECIALBUILD )
#endif

FILEOS VOS__WINDOWS32
FILETYPE VFT_APP
FILESUBTYPE VFT2_UNKNOWN

BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "080904b0"
        BEGIN
            VALUE "PrivateBuild", "Fooey"
            VALUE "SpecialBuild", "Barrey"
            VALUE "Comments", "Timey-wimey"
            VALUE "CompanyName", "Acme Inc"

            VALUE "LegalTrademarks", "No liability for product failure accepted"

            VALUE "FileDescription", "Roadrunner Catcher(TM)"
            VALUE "FileVersion", "0.1.2.3"

            VALUE "InternalName", "catcher.exe"
            VALUE "LegalCopyright", "Copyright (C) Acme Inc"
            VALUE "OriginalFilename", "Catcher-build.exe"
            VALUE "ProductName", "Catcher"

            VALUE "ProductVersion", "4.3.2.1"
        END
    END
    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation", 0x809, 1200
    END
END

#endif    // not APSTUDIO_INVOKED

额外注意事项

  • PrivateBuild和SpecialBuild的内容仅当FILEFLAGS中对应设置了VS_FF_PRIVATEBUILD和VS_FF_SPECIALBUILD时,才会在EXE的属性窗口中显示。
  • StringFileInfo中的代码页块080904b0与VarFileInfo中的Translation字段(0x809对应英文英国,1200对应UTF-16LE)保持一致,这部分你的设置是正确的,无需修改。
  • 修改后需清理项目的中间文件(如.obj、.res),然后重新编译生成EXE,确保新的资源生效。

内容的提问来源于stack exchange,提问作者CSM

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 18:44:49