DLLを使用すると、標準的なWindowsのエラーを取得欠落している場合、DLLを使用してEXEを実行しようとすると、多くの場合:EXEはDLLに静的な依存関係を持つことができますか?
The program can't start because XXX.dll is missing from your computer. Try reinstalling the program to fix this problem.
これはビルトインすることがEXEにあなたのコードのいずれかが呼び出される前に思えます...どのように動作し、Visual Studioでプロジェクトをビルドするときに、どのようにセットアップされますか?
編集:私の特定のシナリオで
私は実際にそれらが存在しない場合は、私のDLLを登録すると、診断するのが少し難しいとなる障害が発生したので、他のDLLの「静電気」の依存関係を持っているDLLを持っています。しかし、私はむしろたくさんあるので、これまで使用されていたDLL関数を手動でリストアップしたくないでしょう!
リンクされたMSDNページでは、「静的」という用語が使用されています...とにかく短い答えは、DLLの関連する.libを追加することです.VSは暗黙的にDLLをリンクさせますか?しかし、.libを追加しないと、.hファイルで宣言されたメソッドを呼び出すので、リンカーエラーが発生します。 VS _not_にDLLを暗黙的にリンクするように指示できますが、それ以外は同じ方法で動作しますか? –
@John *暗黙的なリンクのためによく使われる他の用語を列挙しているときには*静的な*という言葉があります。私の見解では、動的*リンクを記述するための* static *の使用は誤用されています。 * static load *という用語を使用する際の問題は、全く異なる静的リンク*と混同しすぎることです。 –
@Johnあなたの問題は暗黙的なリンクと明示的なリンクとは関係ありません。問題は、DLLが検索パスにないことです。それを検索パスに入れる必要があります。私はそれを解決する最良の方法が何かを知らない。あなたがDLLの出所について教えてくれたら、どこに置くべきかアドバイスすることができます。 –