Hi David,
I think the problem is that dxexec.exe uses a different C runtime from
dll modules built with dxexec.lib and dxlite.lib. I used the C runtime
memory allocation hooks to see that I get crashes when AutoColor tries
to free memory allocated during MyConstruct (a Construct module
recompiled as a loadable dll).
The dependencies I see are the following:
dxexec.exe -> C:\windows\system32\msvcrt.dll
MyConstruct.dll -> links to
dxlite.lib -> Requires imports from Dll versions of C runtime
msvcrt.lib -> which loads msvcrt71.dll or msvcrt80.dll.
There are two ways to fix this. One is to link dxexec.exe to the same
version of the C runtime that people have to use when they make loadable
dlls. The other is to separate all DXLite.lib functionality into a dll
which is called by both dxexec.exe and any loadable modules.
dxexec.exe -> dxlite.dll -> any crt it pleases
MyConstruct.dll -> dxlite.dll -> any crt it pleases
I think that's the key, but I'll talk with my peeps on the hallway to
see if there is some way around it.
Drew
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of David
Thompson
Sent: Wednesday, December 14, 2005 5:54 PM
To: [email protected]
Subject: RE: [opendx-dev] problem compiling import module under Windows
I've already seen where VS 2003 can't compile a file within OpenDX.
I've reported the bug to Microsoft but never got anywhere with it.
It's still there. The other thing I think I may be running into is
that the compiler may be picking up headers from vc6 when it
shouldn't be. I've thought about un-installing all the development
environment and just using VS 2005 and see what happens. Will
probably try this after I get the next version released.
I don't believe that I have any of the cygwin stuff creeping in--but
I wouldn't guarantee it.
Please report if you figure it out.
David