Version resource in DLL not visible with right-click
The correct solution is to add to the top of your .rc file:
#include <windows.h>
I was able to see (using reshacker) one difference between my resource and resources that appear on right-click, and that was the name of the resource. So I changed VS_VERSION_INFO to 1; and now the resource is visible on right-click.
1 VERSIONINFO
FILEVERSION 1,0,0,1
PRODUCTVERSION 1,0,0,1
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "FileDescription", "something Application"
VALUE "FileVersion", "1, 0, 0, 1"
VALUE "InternalName", "something"
VALUE "LegalCopyright", "Copyright (C) 2008 Somebody"
VALUE "OriginalFilename", "something.exe"
VALUE "ProductName", "something Application"
VALUE "ProductVersion", "1, 0, 0, 1"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
Try changing your resources to:
FILEFLAGSMASK 0x3fL
and
BLOCK "040004e4"
and
VALUE "Translation", 0x400, 1252
I will expand @Stefan answer, according to: StringFileInfo BLOCK statement
Defines a string information block. syntax
BLOCK "StringFileInfo" { BLOCK "lang-charset" {VALUE "string-name", "value" . . . }}
Parameters
lang-charset
Language and character-set identifier pair. It is a hexadecimal string consisting of the concatenation of the language and character-set identifiers specified in the Remarks section.
My case is that I was using the wrong lang-charset
and that's why the version details was not showing the version info, this is the correct one:
BLOCK "040904E4"
....
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1252
END
Here the list of language codes and character set