質問: clrアプリと通常のアプリとの違い について教えてください。 両者の使い分けはどのようにするのでしょうか? clrアプリを実行するには特別な環境が必要なのでしょうか? vc++express edition を使って win32コンソールアプリ(helloworld!表示) と crlコンソールアプリ(helloworld!表示) を作ってみたのですが同じようなものができます。 どのように使い分けるのでしょうか?
回答: 基本的に同じことができます。 違いは、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が良いと人々がいます。