2010-12-12 9 views
0

たとえば、プログラムを作成し、環境変数を削除した場合にMinGWでコンパイルすると、ディレクトリにdllを置く必要がある場合ディレクトリ内の特定のDLLでのみ実行するプログラムを取得する

ie。

libgcc_s_dw2-1.dllそれなしでプログラムがさえ開始されません。 QTで開発する場合

は、私はプログラムがDLLが不足していることを知っているかと思いまして、それはQtCored4.dllだった、私はディレクトリ内の別のDLLを必要と気づきましたか?

また、定義文か何かのようにプログラム、 にこのような何かを追加するために、とにかくありますか?

私はC++で動作することができます:)答えを必要とするオペレーティングシステムによって世話をされて

答えて

1

- あなたのプログラムがDLLから関数を使用しているので、それは自動的場合は、プログラムの起動時にロードされ、 DLLが見つからない場合、エラーが発生します。このプロセスの詳細については、Load-Time Dynamic Linkingを参照してください。

1

QTで開発する場合、私はそれがQtCored4.dllだった、私はディレクトリ内の別のDLLを必要と気づいた、私はプログラムのDLLが

が欠落していることを知っているどのように思っていたあなたはまた、ロードしようとすることができます実行時にDLLを自分自身で実行し、正常に処理してください。 LoadLibraryおよびGetProcAddressを参照してください。まだ良い

+0

、遅延ロードを使用します。その方法は、コンパイラがすべて 'GetProcAddress'を呼び出し、あなただけの' LoadLibrary'が失敗したときの回復(またはエラー報告)コードを提供する必要があるの世話をします。 –

関連する問題