New Faces of DLL Hell

Davide's picture

Today I faced a case of DLL Hell.

  1. I make a program and it runs fine on my PC
  2. I make a simple installer and install it on a different PC
  3. The program doesn't run on the other PC

The problem this time was that the error message was rather ambiguous, something like "the software isn't installed properly".. WTF ?!

To make a long story short: Visual Studio 2005 now has this manifest thing which describes DLLs that have to be included and that automatically doesn't dell you which DLL is missing.
I had to disable the manifest thing from the linker to get an EXE that would run and complain properly about the missing DLLs.
Then it wasn't enough to install the vcredist_x86.exe shit. I actually had to go manually and grab the various CRT DLLs (3 for Release, 3 for Debug) and the relatives .manifest (one each) from some Visual Studio subfolder and include those in my installer to be all deployed in the same path as the exe.

If this sounds very weird to some readers.. disregard the description. I'm sure it will come handy to some Windows developers around here 8)

..just wanted to complaint and somehow give a rough idea of the solution.

ole'

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

And this is what you get

And this is what you get when you have a development team that already finished the product fully a few years ago. They start to come up with new 'features'.

I was making a simple tool for work that worked fine on my machine, worked fine on someone else's machine but simply wouldnt start with some 'missing files' crap on another machine.

My solution was to statically link in everything :)

However sooner or later one

Davide's picture

However sooner or later one has to include some library that requires dynamic linking 8(

Welcome to the world of

Welcome to the world of VS2k5 ... we see that you're an old time VS2k3.NET user ... If you compile and not use the mutli-threaded DLLs, you shouldn't get that message ... of course your .EXE size will grow larger. 8P

Ah so thats what this

Ah so thats what this manifest thing is. I kept seeing it in the build output window, but have always wondered what it was for.

It's a manifestation of

Davide's picture

It's a manifestation of bullshit.
I think it's mostly used with C#

I can't remember what the

I can't remember what the manifest thing was for. I think it is a .NET related feature ... since the PC isn't my primary dev. platform, I quickly forgot. 8P

No MT ? ..a bit restrictive

Davide's picture

No MT ? ..a bit restrictive nowadays 8P

MT is standard w/ VS2k5 and

MT is standard w/ VS2k5 and up. I was meaning that there's an option that you can link to a non-DLL version of the library ... which will bloat your .EXE. I can still run my test programs on WinME as a result. 8P ... Don't ask me why I still run WinME ... ;-)

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.