www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Re: Phobos and Tango deep dependancies

reply Gilles G. <schaouette free.fr> writes:
Walter Bright Wrote:
 phobos.lib doesn't have any dependencies on various dll's, except that 
 std.socket pulls in ws2_32. All the dll dependencies come from the C 
 runtime library, snn.lib.
 
 The only explicitly loaded dll's in snn.lib are kernel32 and user32. Any 
 other dll's are loaded by those dll's, and any dynamically loaded dll's 
 are loaded by those dll's. Not by phobos or snn.

But why does the C runtime library for DMD requires user32? A simple hello world program compiled using visual 2005 express does not depend on user32! Is there any way to solve this?
Oct 02 2007
next sibling parent "Jarrett Billingsley" <kb3ctd2 yahoo.com> writes:
"Gilles G." <schaouette free.fr> wrote in message 
news:fdu60s$2pf6$1 digitalmars.com...
 But why does the C runtime library for DMD requires user32? A simple hello 
 world program compiled using visual 2005 express does not depend on 
 user32!
 Is there any way to solve this?

Let me get this straight: you're complaining about a dependency on a DLL which every system has. Aren't there more important things you should be worrying about?
Oct 02 2007
prev sibling parent reply "Vladimir Panteleev" <thecybershadow gmail.com> writes:
On Tue, 02 Oct 2007 22:26:20 +0300, Gilles G. <schaouette free.fr> wrote:

 But why does the C runtime library for DMD requires user32? A simple hello
world program compiled using visual 2005 express does not depend on user32!
 Is there any way to solve this?

user32.dll is pulled in because of one import - MessageBoxA. In case that an unhandled exception or other internal error happens, and the application doesn't have a console (or, more precisely, a standard output stream), a message box is shown. This could be remedied by delay-importing it. -- Best regards, Vladimir mailto:thecybershadow gmail.com
Oct 02 2007
parent Gilles G. <schaouette free.fr> writes:
Vladimir Panteleev Wrote:
 user32.dll is pulled in because of one import - MessageBoxA. In case that an
unhandled exception or other internal error happens, and the application
doesn't have a console (or, more precisely, a standard output stream), a
message box is shown. This could be remedied by delay-importing it.

*this* is a precious piece of information. It will unfortunately not allow me to solve the problem, but it is a good explanation for the software developer for which I am writing a DLL. Thank you very much Vladimir. -- Gilles
Oct 03 2007