0

マネージ コードとアンマネージ コードに関するいくつかの資料を読んだ後、マネージ コンパイラで IL が生成され、どのマシンでも理解できることに気付きました。アセンブリを他のマシンに展開するだけで、CLR がアセンブリを正しく実行するのに役立ちます。

しかし、VC++ は CLR とそのアンマネージ コードをサポートしていないことも読みました。しかし、VC++ バイナリは、変更を加えることなく、任意のマシンで実行できます。exeをビルドするマシンと同じ構成である必要はありません。

アンマネージ コードとマネージ コードが正確に何であるかを明確にしてください。アンマネージ コードが、異なるマザーボード、チップセットなどのように構成がほとんど異なる他のマシンで実行されるべきではない場合... VC++ バイナリはそこでどのように実行されますか?

4

3 に答える 3

4

VC++ バイナリを変更せずにどのマシンでも実行することはできません。Windows マシンでのみ実行できます。たとえば、現在の VC++ 64 ビット実行可能ファイルは、古い Win 95 では動作しません。

マネージ コードは、実行時に CLR によって解釈される IL に変換されたコードです。非マネージ コードは、CPU によって直接実行されるネイティブマシン コードに変換されたコードです。

于 2012-04-13T08:37:07.853 に答える
1

通常、VC++はアンマネージバイナリを生成します。これらはすべてのWindowsコンピューターで実行できます(おそらくc ++-redistパッケージを使用)。

C ++でマネージド(.NET)アプリケーションを作成するには、 C ++/CLIを使用する必要があります。

この場合のマネージコードは.NETであり、アンマネージコードはネイティブバイナリです。

アンマネージバイナリを実行するには、マシン上に依存ライブラリが必要です。マネージコードを実行するには、.NETFrameworkが必要です。

于 2012-04-13T08:39:51.737 に答える
0

Visual C ++は言語ではなく、コンパイラとライブラリのセットが付属しているMicrosoftのIDEです。このコンパイラを使用して、マネージコードまたはアンマネージコードを生成できます。アンマネージコードの場合、Windowsが理解できる形式のexe(またはdllまたはその他のバイナリ)を生成します。OS(この場合はWindows)は、プロセッサ、マザーボードなど、他のすべての詳細をあなたから抽象化します。

于 2012-04-13T08:39:44.387 に答える