我正在尝试使用VERSIONINFO资源的'Comment‘字段。目标程序是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
...“不适用”?这是不是意味着我需要设置一些特殊的标志,或者一些东西来显示评论?
发布于 2016-02-10 19:51:21
要使其正常工作,我必须将/D _UNICODE /D UNICODE添加到资源编译器命令行:
rc.exe /D _UNICODE /D UNICODE ....使用这样的命令行-注释就在那里!我看起来很奇怪,它只对注释是必需的,而其他预定义字段不需要它。无论如何--谢谢你们的提示--我已经看过了VS是如何做到的。
https://stackoverflow.com/questions/35313393
复制相似问题