DLL vs Shared Library

Phillip Susi psusi at cfl.rr.com
Fri Mar 31 16:09:59 UTC 2006


The app can find out what version of a dll it HAS loaded, but it can not 
choose which version TO load.  This is because the version number is 
inserted as a chunk of data inside the dll rather than being appended to 
the name of the file like it is on nix systems.

As a result, applications tend to be bundled with a given dll and they 
replace the existing on on the system when installed.  This usually 
breaks other applications that were using another version of that dll. 
After a while developers just gave up on trying to actually share dlls 
that aren't bundled with windows, and just install their own copy to 
their program's directory, so they don't get shared at all, so there's 
not any point in having a separate dll in the first place.


Michael T. Richter wrote:
> 
> 
> It might help avoid future embarrassment if you learned the technology
> you bashed.  Here's a random URL from Googling "DLL Version":
> http://www.codeproject.com/file/fileversioninfo.asp
> 
> Note the APIs referenced there:
> - GetFileVersionInfo()
> - GetFileVersioninfoSize()
> - VerQueryValue
> 
> So, you're absolutely right.  There's no way for an app to know which
> version of a DLL is installed.  If it is written by a dullard.
> 
> 






More information about the ubuntu-users mailing list