0

私のプログラムは、LoadLibraryを使用して多数のDLLを動的にロードし、(文字通りすべてのマシンで)これらは正常にロードされますが、1台のマシンではこれらのDLLの一部がロードされません。lasterrorをトレースするコードを追加しましたが、これは「0x43ネットワーク名が見つかりません。」と報告します。

問題のマシンはWindows7Enterprise x64を実行しており、DLLは32ビットDLLです。これは問題にはならないはずであり、(実際には)これは私の開発環境です。

また、DLLの名前(パスを含む)を短いファイル名に変換してみましたが、それをLoadLibraryの呼び出しで使用しても、同じエラーが発生しました。

何か案は?

// * eggbox

4

2 に答える 2

2

Procmonをダウンロードして実行し、dll名をフィルタリングします。これにより、dllが検索された場所と、0x43を返したアクセスパスがすぐにわかります。

コード用のpdbもある場合は、コールスタックも取得できます(C / C ++にはマネージコードはありません)。

于 2012-05-10T20:15:44.070 に答える
0

プロファイルモードでDependencyWalkerを介してプログラムを実行し、その優れたツールで何が問題になっているのかを正確に教えてください。

于 2012-05-10T20:18:02.643 に答える