2011-05-01 200 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組件供應商或作者尋求支持,最好的方法。