3

背景:私は主にJavaでプログラミングしますが、VC++でコンパイルされた.dllに含まれるいくつかの関数を時々呼び出します。プログラムの前提条件をチェックするインストーラーパッケージを作成しようとしています。プログラムを実行するためにターゲットコンピューターに.NETFrameworkが必要な場合と、Microsoft VisualC++再頒布可能パッケージが必要な場合を理解しようとしています。

次の質問は、私の主な質問に対する答えを理解するのに役立つと思います。

1つの単純な'cout<< "hi";'で構成されるプログラムを作成し、正常にコンパイルするとします。VisualC++のステートメント。プログラムを実行するマシンには、.NET Frameworkがインストールされている必要がありますか?

いわゆる共通言語ランタイムとMicrosoftVisualC ++再頒布可能パッケージ(別の種類のランタイムであると私は理解しています)の違いは何ですか?

4

1 に答える 1

3

.NET フレームワークを使用している場合にのみ必要です。単純なcout << "hi";プログラムは、任意の DOS/Windows (コンソール アプリケーションであると仮定) プラットフォームで正常に実行するために、追加のパッケージ/フレームワークをまったく必要としません。

ただし、.NET フレームワークのいずれかの機能を使用している場合は、当然のことながら、それがターゲット マシンに存在する必要があります。

再配布可能ファイルについては、MSDN からの抜粋です。

このパッケージは、C ランタイム (CRT)、標準 C++、ATL、MFC、OpenMP、および MSDIA ライブラリのランタイム コンポーネントをインストールします。

つまり、DLL として使用する場合は、このパッケージのライブラリ (DLL) が必要になります。必要なコンポーネントのほとんどを実行可能ファイルに直接簡単にリンクできます。その場合、DLL は必要ありません。ライブラリのコードに共有 DLL リソースを使用することを指定できます。その場合、ターゲット マシンで再頒布可能ランタイムが必要になります。

于 2012-07-14T09:31:39.553 に答える