• ベストアンサー

CLRアプリと通常のアプリとの違い

について教えてください。 両者の使い分けはどのようにするのでしょうか? CLRアプリを実行するには特別な環境が必要なのでしょうか? VC++Express Edition を使って Win32コンソールアプリ(HelloWorld!表示) と CRLコンソールアプリ(HelloWorld!表示) を作ってみたのですが同じようなものができます。 どのように使い分けるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • zwi
  • ベストアンサー率56% (730/1282)
回答No.1

基本的に同じことができます。 違いは、Win32の方を選ぶとコンパイル結果がCPUが直接実効できる機械語になります。 CLRアプリは、共通中間言語という言語にC言語から変換されます。CLRは、C#やVisualBasicやC++/CLIで共通のランタイムライブラリで、一種のインタプリタです。機械語より多少遅いのと.NET FRAMEWORKが必須になります。 http://ja.wikipedia.org/wiki/%E5%85%B1%E9%80%9A%E8%A8%80%E8%AA%9E%E5%9F%BA%E7%9B%A4 作ったPCだけで動かしている分には気にしなくて良いですが、他の人に配布するときは.NET FRAMEWORKを一緒に配らないといけません。 それにWin32のC++(アンマネージド)とC++/CLI(マネージド拡張)は文法が違いますので注意が必要です。 http://ja.wikipedia.org/wiki/C%2B%2B/CLI 前の質問にも答えておきます。 >MFCが使えないのならば作りにくいのでしょうか? 世の中に出ている本やWEBサイトがMFC前提で書かれている場合が多いので、MFCは情報を調べやすいのです。 MFCは、WindowsAPIを楽に使うために手順を省略してC++ライクに使えるようにすることが目的です。 http://ja.wikipedia.org/wiki/Microsoft_Foundation_Class ただし、WindowsAPIだとMFCより細かく書かないと同じ機能を実現できないのでWindowsAPIは面倒だという人々と、MFCで標準でない機能を実現しようとすると難度がWindowsAPIより上になるのでだったらWindowsAPIが良いと人々がいます。

reiman
質問者

お礼

詳しい説明ありがとうございました。

関連するQ&A