why providing a .def file

Eoin Carroll ewc@orl.co.uk
Mon, 16 Jun 1997 15:13:55 +0100 (BST)


> I'm quite new to this list. I installed OmniORB2 on Win95; its runs fine.
> I run into troubles when trying to recompile it for the debug version under
> MSVC 5.0; the provided .def file doesn't match all compiled symbols, so I
> had to exclude a lot of symbols from it (I believe they are really
> unnecessary outside). I had similar problems when trying first to compile
> the standard version under MSVC 4.0, since Microsoft changed the mangling
> rules after 4.0.

That's correct - the symbols for the debug version differ from those in 
the release version. You could try using the static library for debugging.

> So here is the big question: why not putting _OMNIORB_NTDLL_ in front of
> all really exported classes and forgetting about providing a .def file ? As
> far as I know this is the standard way for Win32. I even tried that way,
> however all ORB/BOA stuff is not marked as exported along their class
> definitions, so examples don't link.

The reason for this is that there doesn't seem to be a way to export templates
using the macros ( under MSVC++ 4.2 - and I don't think this has been added in
MSVC++ 5.0 ). So, a .DEF file must be used (at least for the templates).
If there is a way, we'd be interested to hear.

> A further question: why not providing the workspace (or project) files for
> MSVC under Win32 ? They provide helpful support when debugging, and the
> released makefiles seem generated from that source anyway.

Seems like a good idea. We'll put them in our next release. 

Eoin.