-1

I'm creating COM object dll. When I brought it to WIN XP 32 bit macheen and tried to register, I got message: LoadLibrary ... failed. The specified module could not be found.

When I look at it with dependency walker I found that there are missing 3 dll's:

ATL100.dll
MSVCR100D.DLL
DWMAPI.DLL

What are the ways of solving this problem? And I don't like that fact that when I install this COM dll to my customers I will also need to take missing dll's together.

vico
  • 17,051
  • 45
  • 159
  • 315
  • 3
    Do research before posting. This was asked million times before. http://social.msdn.microsoft.com/Forums/en/vcgeneral/thread/845617aa-ab76-4fe1-a658-d020828598b8 – Roman R. Aug 13 '12 at 12:05
  • 1
    are you missing any runtime libraries? did you try googling the names of the missing dlls to find out what they are a part of? – Wug Aug 13 '12 at 12:05

1 Answers1

1

You need to have the MS VC++ 2010 redistributable pack installed on the client machine.

You should also link your program against the release version of the redist pack and not distribute a debug version of the VC++ runtime (msvcr100d.dll) as its release counterpart is part of the VS2010 redistributable pack, as described here. The ATL100.dll is also part of that pack. MS has strict policies about which dll can be distributed with the application. A previous post about DWMAPI.DLL will help to sort out that problem.

Community
  • 1
  • 1
jpe
  • 1,013
  • 6
  • 14
  • Agreed. MSVCR100D.DLL is not a library that can be legally distributed so the OP needs to make sure everything is being built in release mode before trying to distribute. – drescherjm Aug 13 '12 at 12:35