16 bit DLL works fine under Win95, won't load under 3.1

16 bit DLL works fine under Win95, won't load under 3.1

Post by Craig Hoop » Tue, 28 May 1996 04:00:00

I have recently moved to using VC++ 1.52 from MS C 6.0, and after some
initial trouble setting compile and link options everything appeared
to be working fine.  However I am developing under Win95, and was
quite suprprised when the EXE and DLLs I had been using for a couple
of months without any problems wouldn't even load under Windows 3.1.

It appears to be a single DLL that is causing the problem - DrWatson
gives very strange log entries - the stack trace says that functions
that shouldn't be called at all are being called in impossible orders!
It is this that makes me think there is something wrong with the link,
but the the same DLL works fine under Win95.

It isn't a debug/release or optimisation problem as I have tried all
combinations of these.  The same code compiled under C 6.0 still works
- all that is different is the make file.

Can anyone suggest what may be causing this?  My current guesses are
that something is different with the packing of segments or maybe
there are some circular references between our DLLs that Windows 3.1
has trouble with (there are some circular references that haven't
caused problems in the past).

Craig Hooper
Senior Programmer
Freehill Hollingdale & Page Australia