在C ++中设置内置exe的Windows文件详细信息?

时间:2013-11-06 14:00:41

标签: c++ windows

我正在使用MinGW作为编译器创建一个exe。 我想拥有我的exe的文件详细信息。 类似的问题被问到here,但它仅适用于MSVC。 我甚至尝试在.rc文件中添加以下代码。顺便说一句。同样的.rc文件有一些代码用于获取图标文件,这工作正常!

VS_VERSION_INFO VERSIONINFO
 FILEVERSION 1,0,0,1
 PRODUCTVERSION 1,0,0,1
 FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
 FILEFLAGS 0x1L
#else
 FILEFLAGS 0x0L
#endif
 FILEOS 0x40004L
 FILETYPE 0x2L
 FILESUBTYPE 0x0L
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "000004b0"
        BEGIN
            VALUE "Comments", "\0"
            VALUE "CompanyName", "\0"
            VALUE "FileDescription", "MyApp Description\0"
            VALUE "FileVersion", "1, 0, 0, 1\0"
            VALUE "InternalName", "Test\0"
            VALUE "LegalCopyright", "Copyright © 2013\0"
            VALUE "LegalTrademarks", "\0"
            VALUE "OriginalFilename", "OriginalFilename\0"
            VALUE "PrivateBuild", "\0"
            VALUE "ProductName", "MyApp\0"
            VALUE "ProductVersion", "1, 0, 0, 1\0"
            VALUE "SpecialBuild", "\0"
        END
    END
    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation", 0x0, 1200
    END
END

我仍然没有在内置的exe中获得任何细节......

1 个答案:

答案 0 :(得分:3)

您是如何构建资源文件的?请记住(参见MS resource compiler):

  

使用MS资​​源工具和GNU之间的主要区别   工具是MS rc在特殊二进制文件中生成“.res”文件   资源格式,可以直接传递给MS链接,而   GNU链接器ld仅支持“.o”(与“.obj”相同)格式的资源   (虽然windres可以两种格式输出)。

示例:

windres -o resfile.o demo.rc
gcc -o demo demo.o resfile.o -mwindows

以下是Adding Version Information and Comments to your DLL示例。