Re [3]: DLLs version of some binaries

  1. jpeg.dll, libpng12.dll, libtiff.dll and zlib1.dll found in
  2. ogg.dll, smpeg.dll, vorbis.dll and vorbisfile.dll found in

I don’t know what are their version numbers, but
did you try selecting them and right click and then
select attributes, or whatever it is called on english Windows ?

Maybe they are compiled with Resources that had the version
nr. in.

Yes, you’re right, libpng12.dll and zlib1.dll both have their versions
within their resources. But the others don’t…

Maybe the maintainers of SDL_image and SDL_mixer could clarify what are
the versions of the other DLLs?

Ok, I have dug the source distribution of SDL_mixer and the Internet and
found what the versions are. Taking a look at their resources also
helped. So just in case someone is interested or just curious:

jpeg: 6b (this is a guess actually, but this version is the latest and
has been around for a long time)
libpng12: 1.2.10
zlib1: 1.2.2
ogg: 1.1.3
smpeg: 0.4.5
vorbis: 1.1.2
vorbisfile: 1.1.2 (another guess, seems that it is shipped along with
vorbis so they probably have the same version number)
libtiff: don’t care anymore…

Talking about versions, maybe someone could give some advice on what I’m
trying to do. Not strictly SDL related I know, sorry.

I have an 2D engine that uses SDL and friends. The engine can be updated
via the Web, installing new versions of itself and of SDL and friends
that need to be updated too. Old versions must be kept to avoid
problems with changes in the API or just a little difference in the
behavior of a function from one version to another. The application that
uses the engine chooses which version of the engine to load, and the
engine them should load the rest of the libraries in their correct versions.

The question is, how should I implement it? I thought about having
different directories for each engine version, about appending version
numbers to the DLLs (not just to the file names, but also changing their
internal name in them and in other DLLs that import them). I also though
about loading the DLLs programatically, that is, via LoadLibrary and
GetProcAddress in Windows, but some binaries don’t work like this (i.e.
SDL_image is linked against a import lib that looks for SDL.dll).

Any advice is appreciated. Note: I’m really concerned about having the
smallest updates possible, so packing each engine version with all other
DLLs is not really an option, at least for now :slight_smile: I just want to update
the DLLs that are different from the previous engine version.