Часть «Комментарии» VERSIONINFO не отображается

Я пытаюсь использовать поле «Комментарий» ресурса VERSIONINFO. Целевая программа — это 64-битный EXE-файл Windows (скомпилирован с 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

пустые «Комментарии» отображаются.

Я также sigcheck программы от SysInternals:

sigcheck -a .\program.exe

Он отображает:

...
Comments:       n/a
...

«Н / Д»? Означает ли это, что мне нужно установить какие-то особые флаги или что-то для отображения комментариев?

0

Решение

Чтобы это работало, мне пришлось добавить / D _UNICODE / D UNICODE в командную строку компилятора ресурсов:

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

С такой командной строкой — комментарии есть! Мне кажется странным, что это требуется только для комментариев, в то время как другие предопределенные поля не требуют этого. В любом случае — спасибо, ребята, за подсказку — я посмотрел, как это делает VS.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]