| **Navigation:**  »No topics above this level«====== Version Information Resource Files ====== | [[mtsyncronization object interface methods summary.htm|{{btn_prev_n.gif|Previous page}}]][[coming future.htm|{{btn_home_n.gif|Return to chapter overview}}]][[clarion.htm|{{btn_next_n.gif|Next page}}]] | | || **The Clarion Project System supports the inclusion of Version Information, conforming to the industry ****standard script format****.** A version script file is simply a text file with the extension of //.Version//. When included into a Clarion project (application or hand coded), the version file stamps, or writes, a variety of information into the target executable. This information can be viewed by right-clicking on the executable file, and selecting Properties from the popup menu. A Version tab should be available with the designated version information. More detail regarding the standard format of the version info script can be found at the following URL: [[http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tools/tools/versioninfo_resource.asp|Microsoft Version Control Information]] Clarion also adds the following exceptions to this standard: 1. A LANGUAGE directive can precede the Version script as follows: **LANGUAGE <;language code>** **VS_VERSION_INFO VERSIONINFO** **...** **END** If the LANGUAGE directive is present in the version file, the language code for the resource target executable is set. This allows a developer to have multiple version info resources for different languages. 2. In the version information group, numbers must use one of the following formats: - decimal numbers (0-9) - hexadecimal numbers in C/C++ format (Example: **0x3fL)** - hexadecimal numbers in Modula-2/Clarion format (Example: **040904E4)** - binary numbers in Modula-2/Clarion format 3. Strings must be of C/C++ format. The **\u** and **\x** escape characters are not supported in strings. 4. **#include** directives are not supported, but all standard mnemonics for the version info related constants are built in to the compiler. **Version script example:** **LANGUAGE 0x419** **1 VERSIONINFO** ** FILEVERSION 1,0,0,1** ** PRODUCTVERSION 1,0,0,1** ** FILEFLAGSMASK 0x3fL** ** FILEFLAGS 0** ** FILEOS VOS__WINDOWS32** ** FILETYPE VFT_APP** ** FILESUBTYPE 0x0L** **BEGIN** **    BLOCK "StringFileInfo"** **    BEGIN** **        BLOCK "040904E4"** **        BEGIN** **            VALUE "CompanyName", "\0"** **            VALUE "FileDescription", "This just a test\0"** **            VALUE "FileVersion", "1, 0, 0, 1\0"** **            VALUE "InternalName", "Version Info Script Example\0"** **            VALUE "LegalCopyright", "Copyright (C) 2003\0"** **            VALUE "LegalTrademarks", "\0"** **            VALUE "OriginalFilename", "TEST\0"** **            VALUE "ProductName", "Version Info Script compiler\0"** **            VALUE "ProductVersion", "1, 0, 0, 1\0"** **        END** **    END** **    BLOCK "VarFileInfo"** **    BEGIN** **        VALUE "Translation", 0x409, 1252** **        VALUE "Translation", 0x419, 1251** **        VALUE "ÒÅÑÒ", 0x409, 1111** **    END** **END** {{tipbox.jpg|TipBox.jpg}} This file is a working example. You can use this as a template for your real world version script files. Simply copy this example to a text file, name it //yourfilename//.version, and include it in the **Library, object, and resource files **section of the Project Tree.