1

を使用してロードしようとすると正常に動作するdllファイルがありますLoadLibrary。ロードされた dll の関数を正常に呼び出すことができます。ただし、この dll で依存関係ウォーカーを使用しようとすると、不足している dll といくつかの dll 内のいくつかのシンボルが表示されます。

これらを安全に無視できることはわかっていますが、なぜこれが起こるのか知りたいですか? PE ヘッダーのインポート ディレクトリを解析しようとしましたが、依存関係ウォーカーと同様の結果が得られます。

ポインタはありますか?

4

1 に答える 1

0

Windows 実装の一部を見ていると思いますが、これは Dependency Walker が正確な OS ルールを認識していないためLoadLibraryです。これらの「偽のインポート」の一部は、Windows DLL について根拠のない仮定を行うアプリをサポートするために、互換性の理由で存在する可能性があります。

どの DLL に対してリンクする必要があるかについては、MSDN ドキュメントを参照してください。通常、他の DLL に転送します。これらの実装 DLL をハードコードしないでください。あなたの会社は、実装 DLL が変更されたときに Microsoft が互換性ハックを追加するほど重要ではない可能性があります。

于 2015-10-22T16:03:01.983 に答える