2009-03-25 17 views
0

Visual Studio 2008でアプリケーションをマルチスレッドするためにIntel TBB C++を使用しています。実行ファイルを実行すると「MSVCP80D.dll」というメッセージが表示されます。これについてネット上にはあまりにも多くのことがあるので、それは私を混乱させる。TBBを使用中にmsvcp80d.dllが見つかりません

助けてください。

編集:答えに基づいて、私は最後に "dllが見つからない"問題を修正することができました。私はvc8のTBB libへの道を与えていました.VC8 dllはVisual Studio 2005で使われていますが、2008年では使われていません。(使用してください(http://www.dependencywalker.com/)実行可能ファイルのランタイム依存性を簡単に判断できます。私はプロジェクトによってvc8ではなくvc9 dllに依存するように変更してから、うまくいきました。

もう1つ注目すべきことは、ウィンドウでマニフェストファイルを使用することです。マニフェストファイルは依存関係を記述します。マニフェストファイルは、必要に応じてアプリケーションを作成する際に生成する必要があります。

答えて

1

さまざまな場所でオンラインで見つけることができます。ウイルスをスキャンしてプログラムのパスに入れると、すべて正常に動作するはずです。複数のデバッグDLLが必要な場合があります。depends32.exeを使用して、見つからないものを確認できます。

+0

ありがとう、depends22.exe http://www.dependencywalker.com/はとても役に立ちました。 –

+0

デバッグDLLが合法的に配布されないことがあります。 – MSalters

+1

それは本当ですが、合法性について尋ねたことはありませんでした.D – Steve

0

あなたのアプリはデバッグバージョンでコンパイルされています。 VCランタイムのデバッグバージョンがパスにありません。 リリースバージョンを生成しようとします。

+0

私は開発環境からアプリを実行しています。私はデバッグバージョンを実行したい。 –

0

開発マシンでプログラムを実行していますか?そうでない場合、このエラーが発生する可能性があります。ファイル名の末尾にある "D"は、DLLがデバッグDLLであり、Visual Studioがインストールされていないコンピュータではないことを意味します。あなたはそれを(それをコピーして)再分配するはずがありません。アプリケーションの「リリース」バージョンをコンパイルして実行する必要があります。あなたが何らかの理由で本当にそれを行うことができない場合、それは1つまたは2つのコンピュータだけです、そのコンピュータにVisual Studioのエクスプレス版をインストールしてみてください。

開発マシンでこの問題が発生している場合は、明らかにコンパイラ/リンカの問題が原因である可能性があります。クリーンビルド(Visual Studioでは "クリーン"、次に "ビルド")を行ってください。

+0

私は開発環境から走っています。私はきれいなビルドも試みました。それでも問題。 –

1

MSVC80DはVS 2005です。VS2008の一部として、代わりにMSVC90Dを使用します。

関連する問題