Did this article resolve your question/issue?



Is there any way to check whether a given r-code file is 32 bit or 64 bit?

« Go Back


TitleIs there any way to check whether a given r-code file is 32 bit or 64 bit?
URL NameP148909
Article Number000131565
EnvironmentOpenEdge 10.1x, 10.2x
All Supported Operating Systems
Question/Problem Description
The OpenEdge 10.1x and 10.2x series use different r-code formats for 32-bit and 64-bit r-code.
Running 32-bit r-code in a 64-bit client or vice-versa will result in an error "Invalid version, <version> (expected <version>) in object file <file-name>. (2888)"
(version over 16000 = 64-bit, lower = 32-bit)
Is there any way to check whether a given r-code file is 32 bit or 64 bit?

Steps to Reproduce
Clarifying Information
Error MessageInvalid version, <version> (expected <version>) in object file <file-name>. (2888)
Defect NumberEnhancement Request# OE00203112
Enhancement Number
There are no utilities or specific ABL features that can determine whether a given r-code file is 32-bit or 64-bit independent of the bit-level of the client used.

Upgrade to OpenEdge 11.0 or later.
Starting with that release, a unified r-code format is used which is portable between the different bit-levels. This removes the need to distinguish between bit-levels, meaning this enhancement is no longer needed.
Try running the .r files from a client with a known bit-level. If the bit-levels match, the r-code will load. If not the  "Invalid version, <version> (expected <version>) in object file <file-name>. (2888)" error will occur.

If the (2888) error is seen, the bit-level can be inferred from the version numbers listed: 
If the version number is over 15000, that indicates the 64-bit format, otherwise it's the 32-bit format.

Example, the error reads "Invalid version, 17391 (expected 1005) in object file myfile.r. (2888)".
In this case, the 17391 is the version found in the .r file, so this is in 64-bit format. The client is a 32-bit client as it expects the 32-bit format.
Last Modified Date11/20/2020 7:36 AM
Disclaimer The origins of the information on this site may be internal or external to Progress Software Corporation (“Progress”). Progress Software Corporation makes all reasonable efforts to verify this information. However, the information provided is for your information only. Progress Software Corporation makes no explicit or implied claims to the validity of this information.

Any sample code provided on this site is not supported under any Progress support program or service. The sample code is provided on an "AS IS" basis. Progress makes no warranties, express or implied, and disclaims all implied warranties including, without limitation, the implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use or performance of the sample code is borne by the user. In no event shall Progress, its employees, or anyone else involved in the creation, production, or delivery of the code be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the sample code, even if Progress has been advised of the possibility of such damages.