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:
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
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.