资源管理器中未显示 DLL 版本信息

Posted

技术标签:

【中文标题】资源管理器中未显示 DLL 版本信息【英文标题】:DLL version information not displayed in explorer 【发布时间】:2014-02-26 12:07:22 【问题描述】:

我目前正在经历一些奇怪的事情。 我为使用 Visual Studio Express 开发的 c++ 项目创建了一个资源文件。我使用 ResEdit 生成了一个初始的 resource.rc 文件,如下所示:

// Version Information resources
//
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
1 VERSIONINFO
    FILEVERSION     0,0,0,0
    PRODUCTVERSION  0,0,0,0
    FILEOS          VOS__WINDOWS32
    FILETYPE        VFT_UNKNOWN
    FILESUBTYPE     VFT2_UNKNOWN
    FILEFLAGSMASK   0x00000000
    FILEFLAGS       0x00000000

    BLOCK "StringFileInfo"
    
        BLOCK "040C04E4"
        
            VALUE "Comments", ""
            VALUE "CompanyName", "MyCompany"
            VALUE "FileDescription", ""
            VALUE "FileVersion", ""
            VALUE "InternalName", ""
            VALUE "LegalCopyright", "MyCopyRight"
            VALUE "LegalTrademarks", ""
            VALUE "OriginalFilename", ""
            VALUE "PrivateBuild", ""
            VALUE "ProductName", ""
            VALUE "ProductVersion", "1.0"
            VALUE "SpecialBuild", ""
        
    
    BLOCK "VarFileInfo"
    
        VALUE "Translation", 0x040C, 0x04E4
    

项目建立后,如果我在资源管理器中右键单击二进制文件,我可以看到“版本”选项卡。但是所有字段都是空白的,尽管我可以通过编程方式检索 vsver 信息。 :( 任何的想法 ?这个 RC 文件有问题吗? 我使用的是法语版的 Windows XP SP2 或 3。

【问题讨论】:

如果注释掉LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL 部分并重新编译会发生什么? @MicroVirus:同样的事情......字段保持空白:( 你可以试试这个:***.com/questions/19890318/…。 (它适用于美国英语 (0x0409) 和 Unicode (1200 / 0x04B0),但如果可行,您可以尝试更改语言和编码值)。或者这 ***.com/questions/852568/… 有帮助吗? @microvirus 不幸的是,在发帖之前,我已经检查过这些帖子:( 【参考方案1】:

您的资源脚本无法编译。您需要在资源脚本的顶部包含Windows.h 头文件:

#include <Windows.h>
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
....

【讨论】:

以上是关于资源管理器中未显示 DLL 版本信息的主要内容,如果未能解决你的问题,请参考以下文章

Android Studios:Android 设备管理器在文件资源管理器中未显示 Nougat 7.0 的文件

水晶报表查看器中未显示图像

切换到 Windows SDK 资源编译器后,VS_VERSION_INFO 未显示在 Windows 资源管理器中

伪造查看器中未显示文件

Tomcat 管理器中的 Web 应用程序版本

从任务管理器中隐藏进程