Managed COBOL can invoke and be invoked by code in any other managed language. Managed COBOL can also invoke native COBOL. In addition, managed code in languages other than COBOL and native COBOL can interoperate by going through managed COBOL code.
Overview of Interoperability
Broadly, there are three Microsoft techniques for calling between native COBOL and managed code: CCW, RCW and Platform Invoke.
Calling a .NET Class from Native COBOL, Using CCW
The COM-callable-wrapper (CCW) is a .NET technique for COM interoperability. CCW wraps managed code as a COM object so that native code can call it like any other COM object.
Calling a Native COBOL COM Object, Using RCW
The runtime-callable-wrapper (RCW) is a .NET technique for COM interoperability. RCW wraps a COM object so that the .NET runtime system can call it. It effectively exposes a COM interface so that managed code can call it.
Platform Invoke and Calling Native COBOL
Platform Invoke is a .NET technique that enables managed code to call unmanaged functions implemented in dynamic link libraries (.dlls).
PInvoke Example
The supplied PInvoke sample demonstrates Platform Invoke.
Callable Attribute in .NET COBOL Interoperation
To call methods from COBOL safely, you need to set the MicroFocus.COBOL.RuntimeServices.CallableAttribute attribute on the non-COBOL methods and on the class and assembly containing them