2012-08-13 119 views
-1

我正在创建COM对象dll。当我把它带到WIN XP 32位macheen并试图注册时,我得到了消息: LoadLibrary ... failed. The specified module could not be foundLoadLibrary ...失败。缺少dll

当我看着它的Dependency Walker我发现有遗漏3的DLL:

ATL100.dll 
MSVCR100D.DLL 
DWMAPI.DLL 

什么是解决这个问题的途径?我不喜欢这样一个事实,即当我将这个COM DLL安装到我的客户时,我还需要将缺失的DLL一起使用。

+3

在发布之前做研究。这被问以前数百万次。 http://social.msdn.microsoft.com/Forums/en/vcgeneral/thread/845617aa-ab76-4fe1-a658-d020828598b8 – 2012-08-13 12:05:46

+1

你是否缺少任何运行时库?你是否尝试用谷歌搜索失踪dll的名字来找出它们的一部分? – Wug 2012-08-13 12:05:59

回答

1

您需要在客户机上安装MS VC++ 2010 redistributable pack

你也应该对REDIST包的发行版链接程序,而不是分发VC++运行时(msvcr100d.dll)的调试版本,它的发行对应的是VS2010可再发行组件包的一部分,如所描述here。 ATL100.dll也是该包的一部分。 MS有严格的关于which dll can be distributed with the application的政策。 A previous post about DWMAPI.DLL将有助于理清这个问题。

+0

同意。 MSVCR100D.DLL不是一个可合法分发的库,因此OP需要在尝试分发之前确保所有内容都在发布模式下构建。 – drescherjm 2012-08-13 12:35:56