0

DLL (COM) をロードしようとするたびに、次のエラーが発生します。

LDR: LdrpWalkImportDescriptor() がそのマニフェストのプローブに失敗しました、ntstatus 0xc0150002

私はたくさん検索しましたが、何も見つかりませんでした。このサイトの専門家を本当に信じており、この問題を解決できることを願っています。

問題がマニフェスト ファイルにあることはわかっていますが、それが何であるか、これを修正する方法は本当にわかりません

私はVS2010 C++を使用し、LoadLibrary

4

3 に答える 3

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 コンポーネントのベンダーまたは作成者にサポートを依頼するのが最善の方法です。

于 2011-05-01T18:17:11.147 に答える
1

Com dll は loadlibrary ではロードされません。ライブラリに実装されたオブジェクトに対して CoCreateInstance を実行すると、システムはそれらを自動的にロードします。

問題は、com dll が依存する dll が見つからないことです。

于 2011-05-01T18:11:44.303 に答える
0

Google がこのエラーに対して生成する最初2 番目のリンクは、どちらもランタイム ライブラリのバージョン管理が一般的な原因であることを示唆しています。どちらも VS2010 より前のものですが、同様の問題を探すことから始めます。その最初の投稿で説明されている分析手順を複製してみましたか?

(DLL はあなたが作成したものですか?そうでない場合は、実際に VS2008 でビルドされ、その投稿に正確に対応している可能性があります。そうである場合は、そこで推奨されているコンパイルの微調整を試すことができます。)

于 2011-05-01T18:16:50.707 に答える