无法加载DLL文件

时间:2011-05-01 18:01:43

标签: c++ visual-studio-2010 loadlibrary

每次我尝试加载DLL(COM)时,都会收到以下错误:

  

LDR:LdrpWalkImportDescriptor()失败   调查它的清单,   ntstatus 0xc0150002

我搜索了很多但没有发现任何东西。 请我真的相信这个站点专家,我希望得到这个问题的解决方案。

我知道问题来自清单文件,但我真的不知道它是什么以及如何解决这个问题

我使用VS2010 C ++和LoadLibrary

3 个答案:

答案 0 :(得分:2)

这是来自ntstatus.h的错误代码的描述:

//
// MessageId: STATUS_SXS_CANT_GEN_ACTCTX
//
// MessageText:
//
// Windows was not able to process the application binding information.
// Please refer to your System Event Log for further information.
//
#define STATUS_SXS_CANT_GEN_ACTCTX       ((NTSTATUS)0xC0150002L)

查看Windows事件日志以获取更多信息。一个非常常见的事故是DLL所需的CRT运行时库未安装在您的计算机中。发布您在问题中看到的内容,如果这没有帮助。或者联系COM组件供应商或作者寻求支持,最好的方式。

答案 1 :(得分:1)

Com dlls未加载loadlibrary。当您为库中实现的对象执行CoCreateInstance时,系统会自行加载它们。

问题似乎在于缺乏所依赖的内容。

答案 2 :(得分:0)

Google针对此错误生成的firstsecond链接都表明它通常是由运行时库版本控制引起的。两者都早于VS2010,但我会首先寻找类似的问题。您是否尝试过复制第一篇文章中描述的分析步骤?

(你创建的是DLL吗?如果不是,也许它实际上是用VS2008构建的,并且与该帖子完全一致?如果是这样,也许你可以尝试那里推荐的编译调整。)