为什么不显示版本信息

问题描述

因此,当我遇到Windows资源文件(.rc)时,我正在开发C ++应用程序,因为我的应用程序是葡萄牙语版本的,所以我这样写文件

MAIN ICON "icon.ico"
MAIN VERSIONINFO
FILeverSION 1,0
PRODUCTVERSION 1,0
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "081604b0"
        BEGIN
            VALUE "Comments","Tenta a tua Sorte!"
            VALUE "CompanyName","Adsglobal"
            VALUE "FileDescription","Jogo Simples"
            VALUE "FiLeversion","1.0.0.0"
            VALUE "InternalName","Tenta a Sorte"
            VALUE "Legalcopyright","copyright © Rodrigo Santos 2020"
            VALUE "OriginalName","Tenta a Sorte"
            VALUE "ProductName","Tenta a Sorte"
            VALUE "ProductVersion","1.0.0.0"
        END
    END
    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation",0x0816,1200
    END
END

由于某种原因,我不知道何时使用g ++和windres进行编译,我得到了图标,但未显示版本信息。
如果可以帮助我,请介绍这个

解决方法

您为VERSIONINFO资源指定了错误的ID。根据{{​​3}},ID必须为1,而不是MAIN

有两种方式格式化VERSIONINFO语句:

versionID VERSIONINFO fixed-info  { block-statement . . . }

-或-

versionID VERSIONINFO 
fixed-info
BEGIN
block-statement
...
END

参数

versionID

版本信息资源标识符。 此值必须为1。

...

因此,请尝试以下操作:

MAIN ICON "icon.ico"
1 VERSIONINFO
FILEVERSION 1,0
PRODUCTVERSION 1,0
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "081604b0"
        BEGIN
            VALUE "Comments","Tenta a tua Sorte!"
            VALUE "CompanyName","Adsglobal"
            VALUE "FileDescription","Jogo Simples"
            VALUE "FileVersion","1.0.0.0"
            VALUE "InternalName","Tenta a Sorte"
            VALUE "LegalCopyright","Copyright © Rodrigo Santos 2020"
            VALUE "OriginalName","Tenta a Sorte"
            VALUE "ProductName","Tenta a Sorte"
            VALUE "ProductVersion","1.0.0.0"
        END
    END
    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation",0x0816,1200
    END
END

或者,您可以使用VS_VERSION_INFO中预定义的<winver.h>宏,例如:

#include <winver.h>

MAIN ICON "icon.ico"
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,1200
    END
END