[omniORB] Using omniORB libraries with Visual C++ 2003/7.1 (memory management issues?)

Luke Deller ldeller at xplantechnology.com
Mon May 24 11:12:15 BST 2004


Maks Verver wrote:
 > I'm trying to make a debug build with the Visual C++ 7.1 compiler and the
 > latest omniORB 4.0.3 binaries.

The latest omniORB 4.0.3 binaries are built with Visual C++ 6.0.  These
binaries will not work with Visual C++ 7.1 - you need to rebuild omniORB
from source.

[Duncan, are there plans to release VC7.1 binaries at some stage?  It seems
to be becoming more popular.  I've added my name to the volunteer list on
the wiki in case you need these to be contributed].

 > I use (ofcourse) the debug libraries:
 > omniORB403_rtd.lib, omnithread30_rtd.lib and  omniDynamic403_rtd.lib.
 > However, there seem to be memory related problems.

Yes, this is because the omniORB DLLs use the memory allocation functions in
the VC6 runtime library (MSVCRT.DLL / MSVCRTD.DLL), whereas your program
would be using the memory allocation functions in the VC7.1 runtime library
(MSVCR71.DLL / MSVCR71D.DLL).  Memory allocated with one of these four DLLs
must be deallocated with the same DLL.

 > The release build (using the non-debug omniORB libraries) doesn't complain,
 > but I suspect that is not because the code is correct, but rather because it
 > doesn't do any assertion checking anymore.

Yes.

Regards,
Luke.



More information about the omniORB-list mailing list