- ベストアンサー
Visual C# について教えてください
今まで、VB を使って Windows アプリを作ってきました。VB 歴は 10 年弱で、RS-232C 経由で測定機器を制御する Windows アプリなどを多数書いてきました。 先日 ANSI C の研修を受け、コマンドプロンプトで動くプログラムなら、C 言語でもある程度のものが書けるようになりました。これを機に、開発環境を VB から C ベースのものに移そうと考えています。 最近 VC# という言語がありますよね? 本屋でパラパラと見たところ、VC# は VB と似た環境で Windows アプリの開発ができそうで、その詳細を知りたくなりました。 現在、VC++ をはじめるか、VC# をはじめるか、悩んでおります。 質問は以下の3点です。 ・VC# で、EXE ファイル単体で動く Windows アプリが作れるのでしょうか? ・本やネットなどで、VC++ のサンプルソースは多く見かけますが、VC# のソースはあまり見かけません。これは開発を行う上で不利になりますか? VC# は VC++ のサンプルソースをほとんど流用できるのでしょうか? ・総合的に判断して、私には VC++ と VC# のどちらが適当だと思いますか? 個人的な判断で構いません。 以上、宜しくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>ランタイムライブラリのことでしょうか? 似てるといえば似てるかも知れませんが、本質的に別物です。 .NET以前は直接実行できるコードが生成されましたが、 .NETはCLR上で実行されるマネージコードが生成されます。 http://www.atmarkit.co.jp/icd/root/90/14096290.html JAVAのJVMとか、古い話ではPASCALのPコードとかみたいなもので、インタプリタと考えていいと思います。 結果としてCPUに依存しないコードになるとか、原理的にはどうしても遅いとか、直接実行されるわけではないので出来ることに制限がある(?)という特徴があります。 但し、.NETでもVC++だけは例外で、いままでと同じコードとマネージコードの選択が可能です。 あとは、実際具体的にどういうものを作るかとか、手間がどの程度かかっていいかとかによると思います。 おそらく比較して手軽に楽に作れるのはVC#の方だと思います。 いろいろな性能(高速性、少メモリ性等)が問題になるとか、かなり特殊なことをやらせるとか、手間を惜しまないならVC++かなと思います。 VBで測定器制御していたそうですが、おそらくVBでできる程度のこと(Win32 APIを使わない)でできたことなら、 VC#では問題無いと思いますが。ただ、実行するマシンスペックの要求はあがるだろうと思います。
その他の回答 (3)
- Bonjin
- ベストアンサー率43% (418/971)
初めに誤解を解いておくと、VC#はC#のIDEで、VC++はC/C++のIDEです。VBはIDEでもあり言語でもあります。 >VC# で、EXE ファイル単体で動く Windows アプリが作れるのでしょうか? #2の方が書かれていますが、EXEだけでなくDLLなどのモジュールも作成できます。 >ランタイムライブラリのことでしょうか? 似たようなものです。 >Windows に標準でインストールされているものではないですよね? Win2003などの新しい(?)バージョンのWindowsには標準でインストールされています。Windows Updateからインストールできるので特に配布する必要もないと思います。 >本やネットなどで、VC++ のサンプルソースは多く見かけますが、VC# のソースはあまり見かけません。 MSDNライブラリ(MSのWeb上のヘルプ)や.NET Framework SDKのヘルプには大量のサンプルソースがありますので、あまり困らないとは思います(人によりますが・・・)。 >総合的に判断して、私には VC++ と VC# のどちらが適当だと思いますか? C#はJavaと似ているので、将来Javaをやりたいと思ったのならC#の方がいいでしょう。DirectXなどを使ってゲームなどを作ってみたいのならばC/C++の方がいいでしょう。 個人的な意見としては、C -> C++ -> C# と段階的にやってみてはどうでしょう? というところでしょうか・・・
お礼
ご回答ありがとうございました。 まずは C と C++ との違いを勉強し、C++ で Windows アプリを作る勉強をしようと思います。
- terra5
- ベストアンサー率34% (574/1662)
>VC# で、EXE ファイル単体で動く Windows アプリが作れるのでしょうか? 見かけ上はそうなります。ただ、実際には.NET Frameworkがインストールされている必要があります。 Javaで作ったプログラムを動作させるのにJVMが必要なのと同じです。 VBで実行にDLLが必要なのと同じとも言えますが。 >本やネットなどで、VC++ のサンプルソースは多く見かけますが、VC# のソースはあまり見かけません。これは開発を行う上で不利になりますか? 私はサンプルが少ないのは不利と考えます。 >VC# は VC++ のサンプルソースをほとんど流用できるのでしょうか? 基本的に無理だと思ったほうがいいでしょう。 大幅に書き換えることになると思います。 >総合的に判断して、私には VC++ と VC# のどちらが適当だと思いますか? それでも情報不足でなんとも言えません。 すでにVB.NETを使えるなら、理由がなければわざわざVC++,C#に移行する必要はないと思いますが。
お礼
ご回答ありがとうございました。 > 実際には.NET Frameworkがインストールされている必要があります。 ランタイムライブラリのことでしょうか? Windows に標準でインストールされているものではないですよね? ということは、EXE ファイルと一緒に配布しなければならないということでしょうか? もしかして、VC++.NET で作った Windows アプリケーションも、.NET Framework のランタイムライブラリと一緒に配布しないと動作しないのでしょうか? > 私はサンプルが少ないのは不利と考えます。 > 基本的に無理だと思ったほうがいいでしょう。 そうでしたか。VC# にあまりメリットがないなら、これから始めるのは VC++ にしようかと思います。 > すでにVB.NETを使えるなら、理由がなければわざわざVC++,C#に移行する必要はないと思いますが。 実は、C 言語研修の講師にも同様のことを言われました。確かに、現在の業務内容では VC++ や VC# に移行する必要性はないのですが、単なる個人的なスキルとして持っておきたいと思いまして…。フリーウェアを作成したりもしますので。 また質問になってしまい、申し訳ございません。もしよければ、ご回答頂けると嬉しく思います。どうぞ宜しくお願いいたします。
- 6dou_rinne
- ベストアンサー率25% (1361/5264)
VC++ができればVC#はできます。(多少の違いはありますが) ですからVC++からはいったらどうでしょうか。
お礼
早速のご回答、ありがとうございました。参考になりました。 VC# から始めることにあまりメリットがないなら、まずは VC++ にしようかと思います。
お礼
ご回答ありがとうございました。 .NET というものが何か、よく分かりました。また、VC# の位置づけも理解できました。 手間を惜しまず、VC++ を勉強しようと思います。