2011-05-01 122 views
0

每次我尝试加载DLL(COM)我得到以下错误:无法加载DLL文件

LDR: LdrpWalkImportDescriptor() failed to probe for its manifest, ntstatus 0xc0150002

我搜索了很多,但什么也没发现。 请我真的相信这个网站的专家,我希望能得到解决这个问题的方法。

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

我使用VS2010 C++和LoadLibrary

+0

您是否发现[this](http://bytes.com/topic/c/answers/863539-visual-studio-error-ntstatus-0xc0150002)与谷歌? – 2011-05-01 18:09:49

+0

ofcourse我发现它,但问题仍然存在 – ADAM 2011-05-01 18:22:08

回答

1

内COM DLL不加载调用LoadLibrary。当您为库中实现的对象执行CoCreateInstance时,系统会自行加载它们。

这个问题似乎是dll取决于缺少的东西。

+3

这是*非常*误导。无论您或COM支持代码调用LoadLibrary(),它都没有区别。 – 2011-05-01 18:14:37

+0

@Hans Passant:对,我补充说明。尽管如此,OP仍然以一种奇怪的方式使用这个dll。 – 2011-05-01 19:16:17

0

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

(是你已经创建了吗?如果没有,也许这实际上是用VS2008建成并完全对应于岗位的DLL的东西吗?如果是的话,也许你可以尝试编译调整推荐在那里。)

+0

不,我没有创建它,我认为这篇文章会帮助我,所以我会按照步骤,看看谢谢埃里克 – ADAM 2011-05-01 18:51:44

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组件供应商或作者寻求支持,最好的方法。