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