views:

112

answers:

1

I have a C++ application (quite complex, multiple projects) in Visual Studio 2008, that produces a single dll. Recently I switched to Windows 7, but had previously been compiling under Windows XP. Suddenly the dll in question cannot be loaded by another application, i.e. on a machine running Windows 2003 Server.

I've been trying various things:

  • I've installed the VC9.0 redistributable package on the server
  • Also copied various .dll's from that package to the application folder
  • The project is of course compiled in release mode

When I run depends.exe on the client machine, I do get the following error:

"Error: The Side-by-Side configuration information for "my_dll.dll" contains errors. This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem (14001). Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module."

and the icon for shlwapi.dll has a red overlay icon.

This didn't happen when I was compiling under WinXP, so I'm guessing that there really is no problem with the .dll's on the client machine, but somewhere there is a reference to that particular version of some dll.

Does anyone know what would be the best way to resolve this?

Regards, Daníel

A: 

OK I found it, and it turns out to be the same problem as described here:

http://stackoverflow.com/questions/1582844/vcredist-x86-dll-and-version-8-0-50727-4053

I had to compare the resources of the old binary with the new one, to notice the difference.

dabs