注: .NET Framework を使用していない場合は、何もインストールしなくても、任意のコンピューターで C++ プログラムを実行できます。あなたの場合、ターゲット コンピューターでエラーを引き起こす 2 つの理由が考えられます。
- 新しいコンピューターには、必要なランタイム アセンブルがありません。
- 新しいコンピューターには、必要な .NET フレームワークがインストールされていません。
...................................................
じゃあ何をすればいいの:
プログラムを開始する前に、.NET フレームワークのサポートを使用するかどうかを設計する必要があります。プログラムを開発するときに .NET Framework を使用する場合は、同じかそれ以上の .NET Framework をターゲット コンピューターにインストールする必要があります。
.NET コンポーネントを使用する必要がない場合は、ターゲット コンピューターにランタイム アセンブリのみを含める必要があります。.net フレームワークを取り除く方法
- ソリューションのプロジェクトを右クリック -> プロパティ -> 一般 -> 共通言語ランタイム サポート -> [共通言語ランタイム サポートなし] を選択します。
...................................................
次に、必要なのは、関連するランタイム アセンブリのみがターゲット コンピューターにあることです。
ランタイム アセンブリを新しいコンピューターに配置する方法:
次の 2 つの方法があります。
ターゲット コンピューターに適切な C++ の議論可能な環境をインストールします (VS2008 SP1 を使用する場合、C++ RD パッケージはこれである必要があります。ダウンロードする前に、ソリューション ビルド アーキテクチャ (32 ビット/64 ビット) も考慮してください)。
ソリューション パッケージを使用してランタイム アセンブリを展開します。(ユーザーがサードパーティのコンポーネントをインストールする必要がないため、これが気に入っています)
...................................................
プロジェクトでアセンブリを展開する方法:
このため、すべての DLL、LIB、EXE は同じランタイム バージョンを使用する必要があります (そうでない場合は、「マニフェスト」ファイルによってアセンブリをリダイレクトするという問題に直面します)。
ランタイム バージョンを確認する方法。Visual Studio で DLL、EXE を開きます (開く -> ファイル) -> RT_MANIFEST を展開します -> その下のファイルをダブルクリックします -> アセンブリの依存関係の詳細が開きます。-> 右側の列のデータをコピーしてメモ帳に貼り付けます。
そこにこのような線が見えます。そして、特定の DLL または EXE が使用するランタイム アセンブリのバージョンです。
assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86".....
ランタイム アセンブリのバージョンを特定したら、このチュートリアルに従って、新しくインストールしたコンピューターで実行してみてください。
最後に:この bla.. bla.. が非常に複雑で、プログラムが非常に単純であると思われる場合は、「ランタイム アセンブリの静的リンク」について検討できます (Google を試してください)。しかし、個人的にはこの方法は好きではありません。
幸運を!