[cvsnt] Re: DLLs again

Tony Hoyle tony.hoyle at march-hare.com
Sun Jun 11 00:07:49 BST 2006


Gerhard Fiedler wrote:
> IMO one either makes sure that the DLL interface stays the same -- or lets
> programs use the DLL of the version that they need. You said that the
> problem is that sometimes Windows decides that a DLL with a different path
> but same name that is already in memory can be used instead of the one with
> the exact path requested. Well... so change the name if you change the DLL
> interface, and everything is well. If the interface of protocol.dll build
> 2230 is not compatible with the interface of protocol.dll build 2151, then

That's a lot harder than it sounds - there's no support for anything 
like that in visual studio so you'd have to rebuild the project files 
for each release (which is a bit of a chicken and egg situation even if 
you scripted it).  You can't just rename a DLL - it stores its 'real' 
name internally and uses that.

We already do that on the Unix builds but of course the build system is 
designed to work that way.  On Windows we'd have to write it from scratch.

Once we get to VS2005 the Manifests contain the checksums of the 
libraries that the programs use - which is *supposed* to fix DLL Hell 
once and for all (it remains to be seen if it does this time...).  Until 
that time we have to use suboptimal solutions.

Tony



More information about the cvsnt mailing list