Commodore
Commodore
443 views

VC6 not compatible with VC5?

Jump to solution

When one of my colleagues ran a native COBOL programme in VC5 and tried to access a sub-routine compiled in VC6 he didn't get the expected result. After he upgraded to VC6 it worked.

But the Release Notes for VC6 only seems to mention problems when using VC4 or earlier together with VC6: "Upgrading from earlier Micro Focus products: This version of your product is dependent on a later version of the Microsoft C run-time system than earlier Micro Focus products. This means that COBOL executables (.exe) built with a version earlier than 4.0 might not be compatible with the current version of the run-time products."

I can't see that there should be any problems with VC5.

0 Likes
1 Solution

Accepted Solutions
Micro Focus Expert
Micro Focus Expert
I think you need to build your .gnt on 5.0 and use them on 6.0.

The docs says:

"As previously mentioned, unless explicitly stated in your current release documentation, the callableartifacts of your application will be forward-compatible when running on the same platform, and using alater product, in the same Product Family, to the one in which they were originally built"

View solution in original post

0 Likes
5 Replies
Micro Focus Expert
Micro Focus Expert
I would recommend you take a look a the "Application Compatibility Guide", as it explains things clearly.

https://www.microfocus.com/documentation/visual-cobol/vc60/Application_Compatibility_Guide.pdf
0 Likes
Commodore
Commodore

I've read the guide and although there's a lot of useful information I can't say I can see that 5.0 and 6.0 are incompatible. In our case there's one gnt file that accesses another gnt file and receives an incorrect return value. The first gnt is compiled in VC 5 and the second in VC 6.

0 Likes
Micro Focus Expert
Micro Focus Expert

Can you give us a clue what the actual error was?

0 Likes
Commodore
Commodore

The two programs - the main program and the sub-routine - share a common copy file and the main program calls the sub-routine with some of the elements in the copy file. The sub-routine is supposed to put values in the elements, but after the call the elements are still empty.

To be fair, I haven't debugged the sub-routine so I can't say if the sub-routine is entered or not. But I'm quite sure that the routine is not entered (it doesn't make sense otherwise).

Both programs are compiled to gnt.

0 Likes
Micro Focus Expert
Micro Focus Expert
I think you need to build your .gnt on 5.0 and use them on 6.0.

The docs says:

"As previously mentioned, unless explicitly stated in your current release documentation, the callableartifacts of your application will be forward-compatible when running on the same platform, and using alater product, in the same Product Family, to the one in which they were originally built"

View solution in original post

0 Likes
The opinions expressed above are the personal opinions of the authors, not of Micro Focus. By using this site, you accept the Terms of Use and Rules of Participation. Certain versions of content ("Material") accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. As of September 1, 2017, the Material is now offered by Micro Focus, a separately owned and operated company. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.