Version Information Resource Files

Top  Previous  Next

 

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.