0

我正在尝试使用 VERSIONINFO 资源的“评论”字段。目标程序是 64 位 windows EXE 文件(用 VS 2015 编译)。

版本、版权、描述等所有元素都正确显示 - 除了“评论”。我像 StringFileInfo 块的其他元素一样定义它。像这样的东西:

VS_VERSION_INFO VERSIONINFO
FILEVERSION     FILEVER
PRODUCTVERSION  PRODUCTVER

FILEFLAGSMASK   VS_FFI_FILEFLAGSMASK
#ifdef _DEBUG
FILEFLAGS VS_FF_DEBUG
#else
FILEFLAGS 0x0L
#endif

FILEOS          VOS__WINDOWS32
FILETYPE        VFT_APP
BEGIN
   BLOCK "StringFileInfo"
   BEGIN
      BLOCK "000004b0"
      BEGIN
         VALUE "FileDescription",  PROGRAM_NAME
         VALUE "LegalCopyright",   COPYRIGHT_NOTE 
         VALUE "CompanyName",      "My Company\0"
         VALUE "FileVersion",      STRFILEVER
         VALUE "ProductName",      STRPRODUCTNAME
         VALUE "ProductVersion",   STRPRODUCTVER
         VALUE "InternalName",     "program\0"
         VALUE "OriginalFilename", "program.exe\0"
         VALUE "Comments",         "A comment to show\0"
      END
   END
   BLOCK "VarFileInfo"
   BEGIN
     VALUE "Translation", 0x0000, 0x04b0
   END
END

当我使用 PowerShell 显示版本信息时,如下所示:

 (dir *.exe).VersionInfo|fl

显示空的“评论”。

我还 SysInternals 的 sigcheck 程序:

sigcheck -a .\program.exe

它显示:

...
Comments:       n/a
...

“不适用”?这是否意味着我需要设置一些特殊的标志,或者一些东西来显示评论?

4

1 回答 1

0

为了使其工作,我必须将 /D _UNICODE /D UNICODE 添加到资源编译器命令行:

rc.exe /D _UNICODE /D UNICODE ....

使用这样的命令行 - 有评论!对我来说看起来很奇怪,它只对 Comments 是必需的,而其他预定义字段不需要它。无论如何-谢谢你们的提示-我看看VS是如何做到的。

于 2016-02-10T11:51:20.677 回答