我正在尝试做一些在常规 MSVC 中很容易做,但在 VC++ Express 中不容易支持的事情。
VC++ Express 中没有资源编辑器。所以我在我的 DLL 项目中添加了一个名为 version.rc 的文件。该文件具有以下内容,由资源编译器编译并添加到最终的 DLL 中。可以使用 reshacker 在 DLL 中查看此资源,但在 Windows 资源管理器中右键单击 DLL 时看不到。
我的 RC 文件缺少什么以使其在右键单击时显示?
VS_VERSION_INFO 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
最佳答案
我能够(使用 reshacker)看到我的资源和右键单击时出现的资源之间的一个区别,那就是资源的名称。所以我将 VS_VERSION_INFO 改为 1;现在资源在右键单击时可见。
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
关于c++ - 右键单击不可见 DLL 中的版本资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/852568/