VERSIONINFO 资源

定义版本信息资源。 资源包含有关文件的版本号、预期操作系统和原始文件名等信息。 该资源旨在与 版本信息 函数一起使用。

可通过两种方式设置 VERSIONINFO 语句的格式:

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

- 或 -

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

参数

versionID

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

fixed-info

版本信息,例如文件版本和预期的操作系统。 此参数由以下语句组成。

语句 说明
FILEVERSION版本 文件的二进制版本号。 版本由两个 32 位整数组成,由四个 16 位整数定义。 例如,“FILEVERSION 3,10,0,61”将按该顺序转换为两个双字:0x0003000a和0x0000003d。 因此,如果 版本DWORDdw1dw2 定义,则需要在 FILEVERSION 语句中显示如下: HIWORD(dw1)LOWORD(dw1)HIWORD(dw2)LOWORD(dw2)
PRODUCTVERSION版本 用于分发文件的产品的二进制版本号。 version 参数是两个 32 位整数,由四个 16 位整数定义。 有关 版本的详细信息,请参阅 FILEVERSION 说明。
FILEFLAGSMASKfileflagsmask 指示 FILEFLAGS 语句中的哪些位有效。 对于 16 位 Windows,此值0x3f。
FILEFLAGSfileflags 文件的属性。
FILEOSfileos 为此文件设计所针对的操作系统。 fileos 参数可以是“备注”部分中给定的操作系统值之一。
FILETYPEfiletype 文件的常规类型。 filetype 参数可以是“备注”部分中列出的文件类型值之一。
FILESUBTYPE子类型 文件的函数。 子类型参数为零,除非 FILETYPE 语句中的 filetype 参数VFT_DRV、VFT_FONT或VFT_VXD。 有关文件子类型值的列表,请参阅备注部分。

 

block-statement

指定一个或多个版本信息块。 块可以包含字符串信息或变量信息。 有关详细信息,请参阅 StringFileInfo 块VarFileInfo 块

备注

若要使用 VERSIONINFO 语句指定的常量,必须在资源定义文件中包括 Winver.h 或 Windows.h 头文件。

以下列表描述了 VERSIONINFO 语句中使用的参数:

fileflags

以下值的组合。

说明
VS_FF_DEBUG 文件包含调试信息,或者使用启用调试功能进行编译。
VS_FF_PATCHED 文件已修改,与同一版本号的原始发货文件不同。
VS_FF_PRERELEASE 文件是开发版本,而不是商业发布的产品。
VS_FF_PRIVATEBUILD 文件不是使用标准发布过程生成的。 如果给定此值, 则 StringFileInfo 块 必须包含 PrivateBuild 字符串。
VS_FF_SPECIALBUILD 文件由原始公司使用标准发布过程生成,但是同一版本号的标准文件的变体。 如果给定此值, 则 StringFileInfo 块必须包含 SpecialBuild 字符串。
VS_FFI_FILEFLAGSMASK 上述所有值的组合。

 

fileos

以下值之一。

“值” 说明
VOS_UNKNOWN 为该文件设计的操作系统未知。
VOS_DOS 文件是为 MS-DOS 设计的。
VOS_NT 文件专为 32 位 Windows 设计。
VOS__WINDOWS16 文件专为 16 位 Windows 设计。
VOS__WINDOWS32 文件专为 32 位 Windows 设计。
VOS_DOS_WINDOWS16 文件专为使用 MS-DOS 运行的 16 位 Windows 而设计。
VOS_DOS_WINDOWS32 文件专为使用 MS-DOS 运行的 32 位 Windows 而设计。
VOS_NT_WINDOWS32 文件专为 32 位 Windows 设计。

 

保留值 0x00002L、0x00003L、0x20000L 和 0x30000L。

filetype

以下值之一。

“值” 说明
VFT_UNKNOWN 文件类型未知。
VFT_APP 文件包含应用程序。
VFT_DLL 文件包含动态链接库 (DLL) 。
VFT_DRV 文件包含设备驱动程序。 如果 filetypeVFT_DRV则子类型 包含驱动程序的更具体说明。
VFT_FONT 文件包含字体。 如果 filetype VFT_FONT, 则子类型 包含字体的更具体说明。
VFT_VXD 文件包含虚拟设备。
VFT_STATIC_LIB 文件包含静态链接库。

 

所有其他值都保留供 Microsoft 使用。

有关文件类型的其他信息。

如果 filetype 指定 VFT_DRV,则此参数可以是以下值之一。

说明
VFT2_UNKNOWN 驱动程序类型未知。
VFT2_DRV_COMM 文件包含通信驱动程序。
VFT2_DRV_PRINTER 文件包含打印机驱动程序。
VFT2_DRV_KEYBOARD 文件包含键盘驱动程序。
VFT2_DRV_LANGUAGE 文件包含语言驱动程序。
VFT2_DRV_DISPLAY 文件包含显示驱动程序。
VFT2_DRV_MOUSE 文件包含鼠标驱动程序。
VFT2_DRV_NETWORK 文件包含网络驱动程序。
VFT2_DRV_SYSTEM 文件包含系统驱动程序。
VFT2_DRV_INSTALLABLE 文件包含可安装的驱动程序。
VFT2_DRV_SOUND 文件包含声音驱动程序。
VFT2_DRV_VERSIONED_PRINTER 文件包含版本控制打印机驱动程序。

 

如果 filetype 指定 VFT_FONT,则此参数可以是以下值之一。

说明
VFT2_UNKNOWN 字体类型未知。
VFT2_FONT_RASTER 文件包含光栅字体。
VFT2_FONT_VECTOR 文件包含矢量字体。
VFT2_FONT_TRUETYPE 文件包含 TrueType 字体。

 

如果 filetype 指定VFT_VXD,则此参数必须是虚拟设备控制块中包含的虚拟设备标识符。

此处未列出的所有 子类型 值都保留供 Microsoft 使用。

langID

以下语言代码之一。

代码 语言 代码 语言
0x0401 阿拉伯语 0x0415 波兰语
0x0402 保加利亚语 0x0416 葡萄牙语(巴西)
0x0403 加泰罗尼亚语 0x0417 Rhaeto-Romanic
0x0404 繁体中文 0x0418 罗马尼亚语
0x0405 捷克语 0x0419 俄语
0x0406 丹麦语 0x041A Croato-Serbian (拉丁语)
0x0407 德语 0x041B 斯洛伐克语
0x0408 希腊语 0x041C 阿尔巴尼亚语
0x0409 美国英语 0x041D 瑞典语
0x040A 卡斯蒂利亚西班牙语 0x041E 泰语
0x040B 芬兰语 0x041F 土耳其语
0x040C 法语 0x0420 乌尔都语
0x040D 希伯来语 0x0421 Bahasa
0x040E 匈牙利语 0x0804 简体中文
0x040F 冰岛语 0x0807 瑞士德语
0x0410 意大利语 0x0809 英国英语
0x0411 日语 0x080A 西班牙语(墨西哥)
0x0412 韩语 0x080C 比利时法语
0x0413 荷兰语 0x0C0C 加拿大法语
0x0414 挪威语? Bokmal 0x100C 瑞士法语
0x0810 瑞士意大利语 0x0816 葡萄牙语(葡萄牙)
0x0813 比利时荷兰语 0x081A Serbo-Croatian (西里尔文)
0x0814 挪威语? 尼诺斯克

 

charsetID

以下字符集标识符之一。

小数 十六进制 字符集
0 0000 7 位 ASCII
932 03A4 日本 (班?JIS X-0208)
949 03B5 韩国 (班?KSC 5601)
950 03B6 台湾 (Big5)
1200 04B0 Unicode
1250 04E2 拉丁语-2 (东欧)
1251 04E3 西里尔语
1252 04E4 多语言
1253 04E5 希腊语
1254 04E6 土耳其语
1255 04E7 希伯来语
1256 04E8 阿拉伯语

 

string-name

以下预定义名称之一。

名称 说明
注释 应显示用于诊断的其他信息。
CompanyName 生成文件的公司-例如, Microsoft CorporationStandard Microsystems Corporation, Inc. 此字符串是必需的。
FileDescription 要向用户显示的文件说明。 当用户选择要安装的文件时,此字符串可能会显示在列表框中,例如 Keyboard Driver for AT-Style Keyboards。 此字符串是必需的。
FileVersion 文件的版本号,例如 或 3.105.00.RC2。 此字符串是必需的。
InternalName 文件的内部名称(如果存在),例如,如果文件是动态链接库,则为模块名称。 如果文件没有内部名称,则此字符串应为原始文件名,不带扩展名。 此字符串是必需的。
LegalCopyright 适用于文件的版权声明。 这应包括所有声明、法律符号、版权日期等的完整文本。 此字符串是可选的。
LegalTrademarks 适用于文件的商标和注册商标。 这应包括所有声明的完整文本、合法符号、商标号等。 此字符串是可选的。
OriginalFilename 文件的原始名称,不包括路径。 此信息使应用程序能够确定文件是否已由用户重命名。 名称的格式取决于创建文件的文件系统。 此字符串是必需的。
PrivateBuild 有关文件的专用版本的信息,例如 Built by TESTER1 on \\TESTBED。 仅当在根块的 fileflags 参数中指定了VS_FF_PRIVATEBUILD时,此字符串才应存在。
ProductName 分发文件时使用的产品的名称。 此字符串是必需的。
ProductVersion 分发文件时所使用的产品版本,例如 或 3.105.00.RC2。 此字符串是必需的。
SpecialBuild 指定此文件版本与标准版本有何不同的文本,例如 Private build for TESTER1 solving mouse problems on M250 and M250E computers。 仅当在根块的 fileflags 参数中指定了 VS_FF_SPECIALBUILD 时,此字符串才应存在。

 

为了向后兼容,也支持某些属性。 有关详细信息,请参阅 通用资源属性

示例

以下示例定义 VERSIONINFO 资源:

#define VER_FILEVERSION             3,10,349,0
#define VER_FILEVERSION_STR         "3.10.349.0\0"

#define VER_PRODUCTVERSION          3,10,0,0
#define VER_PRODUCTVERSION_STR      "3.10\0"

#ifndef DEBUG
#define VER_DEBUG                   0
#else
#define VER_DEBUG                   VS_FF_DEBUG
#endif

VS_VERSION_INFO VERSIONINFO
FILEVERSION     VER_FILEVERSION
PRODUCTVERSION  VER_PRODUCTVERSION
FILEFLAGSMASK   VS_FFI_FILEFLAGSMASK
FILEFLAGS       (VER_PRIVATEBUILD|VER_PRERELEASE|VER_DEBUG)
FILEOS          VOS__WINDOWS32
FILETYPE        VFT_DLL
FILESUBTYPE     VFT2_UNKNOWN
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "040904E4"
        BEGIN
            VALUE "CompanyName",      VER_COMPANYNAME_STR
            VALUE "FileDescription",  VER_FILEDESCRIPTION_STR
            VALUE "FileVersion",      VER_FILEVERSION_STR
            VALUE "InternalName",     VER_INTERNALNAME_STR
            VALUE "LegalCopyright",   VER_LEGALCOPYRIGHT_STR
            VALUE "LegalTrademarks1", VER_LEGALTRADEMARKS1_STR
            VALUE "LegalTrademarks2", VER_LEGALTRADEMARKS2_STR
            VALUE "OriginalFilename", VER_ORIGINALFILENAME_STR
            VALUE "ProductName",      VER_PRODUCTNAME_STR
            VALUE "ProductVersion",   VER_PRODUCTVERSION_STR
        END
    END

    BLOCK "VarFileInfo"
    BEGIN
        /* The following line should only be modified for localized versions.     */
        /* It consists of any number of WORD,WORD pairs, with each pair           */
        /* describing a language,codepage combination supported by the file.      */
        /*                                                                        */
        /* For example, a file might have values "0x409,1252" indicating that it  */
        /* supports English language (0x409) in the Windows ANSI codepage (1252). */

        VALUE "Translation", 0x409, 1252

    END
END

另请参阅

使用版本信息

版本信息