Ari Heitner wrote:
> > Note that it isn't the linker that gets libraries in the components
> > directory, it's XPCOM itself, using dlopen (or whatever the platform
> > uses, through NSPR).
>
> That's the whole point. In the COM framework, you don't know what libraries
> the code you depend on resides in until runtime. This has a key problem: you
> can't tell if you've resolved your dependencies at install time!
>
> The result: software that doesn't run because of evil dependency errors.
As I already explained, this is both a curse (as you describe) and a
feature.
For example, my Quadra game can run both using Xlib or Svgalib. It
shouldn't require both or one specifically, it should just use what is
there. If I linked explicitly with Xlib, then it wouldn't be able to run
in an Svgalib-only environment, and the reverse.
You could call these "soft dependencies", or something similar.
> > You do it just like in Unix, as Microsoft itself is doing with MFC
> > (MFC30.DLL, MFC40.DLL, MFC42.DLL, etc) and the Visual Basic runtime DLLs
> > (VBRUN300.DLL, etc).
>
> It should be more widely done and allow for more descriptive versioning.
Go tell them, it's been a while I gave up on Windows... ;-)
> Windows is *the same* as Unix in every major respect except the way the
> distribution is managed :)
Managing the Windows infrastructure? Isn't that the kind of thing little
gnomes come and do at night? ;-))
--
Pierre Phaneuf
http://www3.sympatico.ca/pphaneuf/