0

これで、アプリケーションのコンパイルと実行に成功しました。私の開発用コンピューターで完全に動作します。

しかし、実行できない別のコンピューターで実行しようとすると、「アプリケーションを正しく開始できませんでした (0xc0150002)」というエラーが表示されます。

いくつかの質問:

  1. 結果のexeが静的にリンクされているか動的にリンクされているかを知るにはどうすればよいですか?
  2. 動的にリンクされていると思われます。依存する dll はどこに置くのですか?
  3. 代わりに、1 つの exe ですべてを取得することは可能でしょうか?

おそらく私と Google の間で解決できることはわかっていますが、そのような冒険をしている時間はあまりありません。私を正しい方向に向けてください。おそらくあなたの答えを最高のものに投票します...

編集:DLLの1つ(私が自分でコンパイルしたもの)がデバッグとしてコンパイルされたため、迷惑なデバッグDLLが欠落していたことがわかりました。Release として再コンパイルしたところ、すべて問題なく動作しました。

4

3 に答える 3

4

MSVC 再頒布可能パッケージを入手してインストールする必要があります。これには、MSVS によって作成およびコンパイルされたアプリケーションに必要なすべての DLL が含まれています。

于 2012-08-20T09:35:29.973 に答える
1

Visual Studio でアプリケーションをデバッグ|実行すると、読み込まれた dll のリストがOutput Window. 次に、次のようなツールを使用してProcess Explorer、アプリケーションが実際に展開マシンにロードした dll を確認できます。2 つを比較すると、問題の原因となっている dll が見つかります。

アプリケーションを同じディレクトリ内のこの dll と結合するか、対応する .lib ファイルに対してリンクすることで静的にリンクすることができます。

于 2012-08-20T09:36:04.660 に答える
0

これは、何らかの種類の DLL が見つからないことに関係しているようです。

プロジェクトオプションの下で、コンパイラがどのライブラリとリンクするように設定されているかを確立できます: C++ >> コード生成 >> ランタイムライブラリ

この設定は通常、マルチスレッド DLL またはマルチスレッド静的に設定され、実装の種類が異なります。

依存 DLL は実行可能ファイルと同じディレクトリに置くことができ、Windows は確実にそれらを見つけますが、DLL の性質 (他のアプリケーションなどで使用される) に応じて他のオプションがあります。

これが問題である場合は、同等の静的ライブラリを使用して、単一の exe として実行できるようにする必要があります。ライブラリのソースがあれば、適切な設定でコンパイルできるので簡単です。 VC の再配布可能ファイルを使用すると、コンパイラに付属の静的ライブラリが存在するはずであり、上記のプロジェクト設定を変更することでそれらにリンクできます。他のサードパーティ ライブラリがある場合は、同じコンパイラ バージョンで同じ設定でコンパイルされた静的バージョンを見つけて、信頼性を高める必要があります。

于 2012-08-20T09:30:05.913 に答える