- ベストアンサー
VisualBasic.NETとVisual C++.NETの違い
- VisualBasic.NETとVisual C++.NETの違いや、それぞれの特徴とは?
- VisualBasic.NETは、フォーム作成やプロパティ変更が簡単。
- Visual C++.NETも同様の機能があるか教えてほしい。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>CLRというのと、CLIというのもまったく別個のものですよね。 ごっちゃになっている場合もありますが、正確には関係ないです。CLI(Common Language Infrastructure)は.NETの仕様のことで、それに則した形にC++を拡張した新しい言語が「C++/CLI」とよばれます。CLRは.NETで作成したプログラムを実行するための環境(仮想マシン)です。 >VC++は、やはり汎用性があるというか、幅広く対応できるように仕様が整えられていると受け取っていいのでしょうか。 前にどこかで見たのですが、VC++開発側としては.NETよりもC++の利点を生かす方針だったように記憶しています。.NET開発に対しては、それ用に開発されたVB.NETやC#等の方がC++/CLIよりはるかに向いているので。 C++/CLIの存在意義は、C、C++で作られた古い資産を.NETに生かせるという点です。たとえばC++で作ったクラスライブラリがあったらそれのラッパークラスを書けばC#からも利用できたりするわけです(もちろんそのクラスライブラリがWindows用なら、その時点でWindows専用になってしまう、つまり.NETの利点が一部失われますが)。 ということで、幅広く対応できるといえばそうなのですが、基本的にはWindowsネイティブなアプリケーションを作成するのに向いていて、.NETに対しては架け橋的な存在である、という感じだと思います。
その他の回答 (3)
- LOHA
- ベストアンサー率52% (203/388)
ちょっと語弊が出るかもしれませんが、現状VisualStudio的なWindowsプログラムには二種類あると明確に区別した方がよいでしょう。 その二つはWindowsだけでのみ動かせるプログラムと、.NETというJava的な仮想マシンの発想を取り入れたものと、です。 Windowsでのみ動かせるプログラム、といった方はWindowsネイティブなバイナリ(実行ファイル)を作成できるプログラムのことです。ただし、これはWindowsのみでしか動かすことができません。とはいえ逆にいえばWindowsにチューニングされた動作の高速なソフトをつくれるともいえます。 こちらがCやC++などで、Win32APIというWindows用の開発ライブラリを利用して作るプログラムに当たります。 一方.NETの方はというとWindowsネイティブなバイナリではなく、中間言語というものを作成します。CLR(Common Language Runtime)というのはその中間コード(.NETのプログラム)を動かす環境のことを言います。つまり、.NETで作ったプログラムはCLRな環境があればたとえOSが違っていても動かすことができるわけです。 さてここからVisualStudio(以下VS)の話に移りますが、VSシリーズのうち、VB.NET、C#.NETはまさに.NET用の言語です。これらの言語はWindowsネイティブなバイナリを作成できません。 ただし、VC++については少し事情が複雑で、Windowsネイティブなものも作れるし(Win32APIを用いて)、.NETなプログラムも作れるようになってます。 ただし、.NETなプログラムを作れる方は完全にC++とは違う独立の言語になっていて「C++/CLI」とよばれます。 という感じです。参考までにどうぞ。
補足
回答ありがとうございます。 たいへん専門的な話で、まだ十分理解できていませんが、今後、勉強していきたいと思っています。 CLRというのと、CLIというのもまったく別個のものですよね。 VC++は、やはり汎用性があるというか、幅広く対応できるように仕様が整えられていると受け取っていいのでしょうか。
- php504
- ベストアンサー率42% (926/2160)
Visula C++でもC++/CLRならフォームアプリケーションでボタンなどのコントロールを貼り付けるプログラムが出来ます。 C++だけが.NET Frameworkを使わない(アンマネージドコードと呼ばれます)プログラムが作れます。(上記のCLR フォームアプリはマネージドコードになります)
補足
ご親切に回答ありがとうございます。 C++/CLRのこと、ネット上で調べました。こうしてひとつひとつ用語を理解して覚えていくことも大切ですね。 どうも見当違いかもしれませんが、このCLRというのは「VisualC++2008」のことなのでしょうか。 C++だけが、アンマネージコードをつくれるということでそれだけ言語として強力な仕様を具えているということなのですか。 また、こういう機能を備えているということにどのような意味といいますか、利便性・有利性があるのでしょうか。
- tom233
- ベストアンサー率17% (61/352)
VB・・・Windowsのネイティブアプリが作れない VC++・・・Windowsのネイティブアプリが作れる。
補足
回答ありがとうございます。 ネイティブ・アプリケーションとは初耳でしたが、少し調べたところ、ハードであるマイコンが直接実行できる命令をプログラミングできるということでいいのでしょうか。 こうしたことがC言語でできるというのは、非常に大きな意味があるといえるのでしょうか。
お礼
たびたび回答ありがとうございます。 補足もたいへん参考になりました。 .NET開発にはVBや、C#が向いているというところや、C++は.NETの環境中でと言うよりも、Windowsネイティブ内でC++独自の仕様を生かす方向である場合が多いということがわかりました。 それにしてもC言語はなんだかんだいっても言語の王道と言うか、無くならないですよね。 何十年も前に開発されたようですが、すごく基本に忠実というか、当時からよく考えられて作られたのだろうという気がします。