20
DependencyWalkerからC++ DLLをポイントすると、「少なくとも1つのモジュールに欠落暗黙的に依存するモジュールでのエクスポート関数 "少なくとも1つのモジュールに、暗黙的に依存するモジュールのエクスポート機能がないために未解決のインポートがあります
エラーの内容をお聞かせください。
DependencyWalkerからC++ DLLをポイントすると、「少なくとも1つのモジュールに欠落暗黙的に依存するモジュールでのエクスポート関数 "少なくとも1つのモジュールに、暗黙的に依存するモジュールのエクスポート機能がないために未解決のインポートがあります
エラーの内容をお聞かせください。
あなたのdll(またはそれがインポートするdll)は別のdllからのインポートを持っています(bad.dll
)。 DependencyWalkerがbad.dll
をスキャンすると、必要な機能がエクスポートされません。この欠落したエクスポートは、dllのインポートリストに赤色(または一部)のラベルが付けられます。
いくつかの外部DLLに依存するEXEを実行しようとすると、この問題が発生します。これは実行可能ファイルが常に実行されるのを妨げる問題ですか?たとえば、これらのエクスポートされていない関数が呼び出されたときにエラーが発生する可能性があります。 – Carrotman42
ほとんどの場合、はい。すべてのインポートはロード時に解決されます。ただし、インポートによっては「遅延ロード」とマークすることもできます(これらはDependencyWalkerでhour glassアイコン(またはその他のもの)で表示されます)。これらのインポートは、アプリケーションが実際に呼び出すまで、Windowsのローダーによって解決されません。私はOpenGL/DirectX DLLをロードするアプリケーションを、ユーザが使用するAPIを選択した後でのみ出荷するためにこれを使用しました。 – bobbogo
この回答は正式に回答とは決して決してされませんでした。なぜC++関数を宣言しないと便利なのでしょうか?あなたはそれが何をすべきかを言わなかった。 – shawn1874