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