Calling C# DLL function from COBOL

  • Thread starter Thread starter Rahul Anand
  • Start date Start date
R

Rahul Anand

I am getting trouble in calling a function defined in C# DLL from COBOL program.

First I want to ask whether it is possible to call a C# DLL function from a COBOL?

If anybody has done this then please help me.

Thanks in advance.
 
I am getting trouble in calling a function defined in C# DLL from COBOL program.

First I want to ask whether it is possible to call a C# DLL function from a COBOL?

If anybody has done this then please help me.

Thanks in advance.

I think the only way to cross the unmanaged->managed border is with a
COM Callable Wrapper and some sort of COM interface in your COBOL
system. I know of only two ways to call managed code (C#), this way
and from other managed code.
 
Brady Kelly said:
I think the only way to cross the unmanaged->managed border is with a
COM Callable Wrapper and some sort of COM interface in your COBOL
system. I know of only two ways to call managed code (C#), this way
and from other managed code.


Thanks for the help. Will you provide me more details about calling a
DLL from COBOL code?

I have converted my DLL with TLBEXP tool to a COM callable wrapper.
Do I need to write COM Component wrapping the DLL function or the TLB
file can be directly called from COBOL? As I do not have any prior
COBOL programming experience, I am not sure whether it is still
feasible to do so or not?

Thanks,
Rahul Anand
 
Hi Rahul

How you call a COM Module from COBOL will vary depending on what product your using

If your using MicroFocus COBOL (Net Express) then you can call a COM module by using a class control section and the invoke verb

eg

Class-Control
MyCOMClass is class "$OLE$MyCOMClass"
....
01 theCSharp object reference
....

invoke myCOMCLass "new" returning theCShar
invoke theCSharp "myMethodName" using avariabl
invoke theCSharp "finalize" returning theCSharp *> We no longer need it

Note the use if $OLE$ to denote it is a COM module

If you can move to Net Express with .Net (COBOL.Net) then you don't need any wrappers. You can just the C# Class directly

Hope this help
David
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top