Created On:  30 March 2012

Problem:

Visual COBOL R4 was installed on a new computer on which older applications developed with Net Express also existed.  Visual COBOL starts OK but when attempting to create a new or open an existing COBOL project the following error is displayed:

ā€œRuntime DLL ā€˜CBLRTSM’ version 1.3, entry point mf_id_dynlink_lib_check not recorded in registry, not found or incompatible with requirements of dynamically bound COBOL program. Dynamic binding of RTS required Any Runtime DLL, at least Version 3.0ā€

What does this mean?

Resolution:

This particular problem occurs because Visual Studio is trying to load one of its system .DLLs but it is finding and loading a .DLL that was compiled with Net Express 3.0 which was linked for dynamic binding.

This is why this particular .DLL is trying to load the COBOL run-time "cblrtsm.dll" for Net Express 3.0.

Since the COBOL run-time system "cblrstm.dll" from Visual COBOL is already loaded into the process (V1.3) this error occurs.

Used the following commands to debug this problem:

From a command prompt:

cd \\program files\\microsoft visual studio 10.0\\common7\\ide
devenv /debugexe devenv.exe

This starts a second copy of Visual Studio under the Visual Studio debugger so that we could see what .DLLs are being loaded into the process.

When trying to create a new COBOL project it showed that the file "MFFH.dll" was being loaded from the C:\\Windows\\System32 folder.
"MFFH.dll" is the Micro Focus File Handler and this particular copy was from Net Express 3.0.

Removing "MFFH.dll" from C:\\Windows\\System32 allowed Visual COBOL to pick up the correct copy from its own bin folder and the problem was resolved.
Incident #2565951