[omniORB] Need help creating C interface to omniORB application on a Windows machine

W T Meyer meyer at iastate.edu
Mon Jul 17 10:52:25 BST 2006


I am using omniORB to salvage some legacy software developed on a 
Windows machine using a National Instruments VME hardware interface 
and LabWindows GUI to access VME hardware.  The application is 
written in C and must be compiled with NI's CVI compiler to get the 
GUI interface. We have replaced the old NI hardware interface with a 
single board computer running Linux and want to keep using the old 
client software.

I have developed a DLL that replaces the client's calls to NI 
routines (in C) with work-alike routines using omniORB.  I must 
compile the omniORB code with MSVC++ (version 6.0) and export it 
using 'extern "C"' in order for the CVI compiler to link to it.

I had all of this working until I added the ability to transfer 
arrays, which required adding _var variables. After that, the old 
method of compiling on MSVC++ still gave a DLL and gave no error 
messages, but neither CVI nor MSVC++ client programs were able to use 
it - the DLL was somehow corrupted.

Following the advice in chapter 12 of the omniORB manual, I tried 
adding '#define USE_stub_in_nt_dll' before including my stub headers 
and this did not fix the problem.

Does anyone have any experience doing this, or any thoughts that 
could be helpful?

Thanks,

Tom Meyer




More information about the omniORB-list mailing list