• 締切済み

C#とC++

Windowsフォームアプリケーションをつくるにあたって、C++とC#の勉強をし始めましたが、どちらも勉強する必要はありますか? また、一方でいいというなら、どちらがいいですか? 両方なら、なぜ両方勉強したほうがいいですか? 質問責めになり申し訳ないですm(_ _)m 良かったら回答お願いします(つд`)

  • eeeef
  • お礼率0% (0/10)

みんなの回答

回答No.6

トップレベルウィンドウに至るまでフォームデザイナがサポートしてくれるので、当面はVisual C#で良いと思いますよ。 興味が湧いたら.Netのソースを見てみるなど。まあ、それに関しては物好きの領域なので得られるものがあるかどうかは別になります。 ウィンドウメッセージはイベントと言う形で取り扱うのが.Netですが、全てのウィンドウメッセージに対応しているわけではありません。 WndProcメソッドをオーバーライドして自力でウィンドウメッセージ処理を行い、WIN32APIをPInvokeするようになって自信がついたら、C++とWIN32APIでWindowsアプリケーション作成を学習してみるのが良いでしょう。 その方が飲み込みは格段に早いと思います。

参考URL:
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.form.wndproc(v=vs.110).aspx
  • sygh
  • ベストアンサー率76% (42/55)
回答No.5

ネイティブC/C++よりも先にC#やJavaを学んだ人は、結構な率でメモリ管理がずさんになります。 スタックとヒープの違いを理解していないまま、あるいは「メモリーリーク何それ食えんの」状態でC/C++を始めると、どうしても無駄にmalloc()/newしてヒープを使おうとしたり、free()/deleteによるヒープの破棄を忘れたりとかしやすいです。 プログラミングに慣れることが目的だったり、データベース連携やWeb開発、あるいは細やかな制御や実行速度よりも生産性を重視する開発が目的だったりするならば、C#を先に学んで、面倒なメモリ管理は全部ガベージ コレクタのようなシステム任せにするという手もありますが、僕はC/C++のような(ある意味)原始的な言語を先に勉強しておいたほうが、後発言語であるC#(というか.NET)のメリット・デメリットを強く感じられるようになると思います。 あれこれ手を出すのは確かにお勧めしませんが、プログラム言語はそれぞれ得意分野があるし、ある言語を習得する際に得た知識が、別の言語を学ぶときに役立つことがよくあります。僕はC言語の習得後にDelphiでオブジェクト指向やRADを勉強する回り道をしたおかげで、C++とC#の習得が比較的スムーズに進んだ経験があります。 なお、C++/CLIは、ネイティブC++とC#の両方をそれなりに使える人でないと、使いこなすのは難しいと思います。

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

C++のフォームアプリってのは従来からC++で組んでいる人のための物なので、初心者ならC#だけの方が良いと思います。 仕事にするなら両方できるに越したことはないですが、C++はフォームでは無くMFCやWin32APIを扱えるようになれないと両方やっている意味が無いと思います。

回答No.3

「Windowsフォームアプリケーション」であればC#の方が簡単です。C#を勉強すればよいと考えます。 C#で書かれたプログラムは、ほぼ機械的にC++のWindowsアプリケーションに書き換えができます。 ただ、CPUの使用時間が数秒を超えるような、数値計算などの処理では、C#の場合に配列の添字範囲検査が常に行われるために処理時間が余計にかかってしまいます。  プログラムをC#で作っておいて、処理時間の長さが気になるようなら、C++に書き換えるというのをお勧めします。その時にC++を勉強すればよいでしょう。

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

両方学ぶ意味は、それぞれに特徴が違うから。 例えば、.NETを使わないアプリを作ろうと思ったら、C#では無理でC++が必要になります。 ただ、名前は似ていますが、二つはまったく別の言語です。 「きちんと分けて理解でき、混乱しない」という自信が無いなら、「同時に」勉強するのは止めておいた方がいいと思います。

  • morchin
  • ベストアンサー率16% (212/1281)
回答No.1

C#の方が良いと思います。敷居が低いので。 両方勉強する必要はないと思います。

関連するQ&A

  • C#Windowsフォームアプリケーションについて

    C#Windowsフォームアプリケーションについての質問です。 どういうプログラムを組めばいいのかわかりません。おしえていただきたいです 詳細は画像を張りました。 よろしくお願いします 。

  • Visual C++に関して

    ものすごい初心者の質問で申し訳御座いませんが、ご教授お願い致します。 windowsプログラミングを作成しようとしておりますが、根本的なことが理解できておりません。それは、「Windowsフォームアプリケーション」と「Win32プロジェクト」との違いが理解できておりません。 あまりに初歩的な質問かと思いますが、どうかご教授よろしくお願い致します。

  • C++とC#シリーズ

    10年ぐらい前に、初めてコンピューターをさわりはじめて C++でアプリケーションを作成したいと思い挑戦しましたが、 メモリとか、さっぱりで一度くじけました。 最近、もう一度挑戦しようと思いC++を始めようとしたのですが、 会社の上司に今なら、C++より、C#じゃない?と言われました。 現場で働いている知人から、聞いてみたらC++でもいいんじゃない? メモリ管理とかあるだろうけど。 と言われました。 ウィンドウズ上で動くアプリケーション等の開発をしようとする場合は C++かなと思っていたのですが、 今から勉強するには、C#の方がいいのでしょうか? よろしければ、ご教授お願いします。

  • [CLR][C++]HTTPPOSTについて

    C++のCLRフォームアプリケーションで開発しています。 プログラムの中で、mixiなどのログインフォームにデータを POSTし、ログインする仕組みが必要になりました。 しかし、検索しても 「MFC」 の文献しか出てこず、 フォームアプリケーションの資源が使えなくて困っています。 このような仕組みをC++CLRフォームアプリケーションで作成することは 出来るのでしょうか。またその方法を教えていただけるとありがたいです。 使用ソフト:VisualStudio2005Academic

  • Visual C++ 2008 Express Editionでの カーソル座標取得

    こんにちは.素人の質問ですがどなたか教えてください. Visual C++ 2008 Express EditionのWindowsフォームアプリケーションで,マウスカーソルの位置座標を取得して,その値を画面に表示させることをやりたいと思っています.マウスカーソルの位置座標取得にはGetCursorPos()関数を使用すると調べたのですが,Windowsフォームアプリケーションのプログラム中でどのように使用すれば良いのか分かりません. 宜しくお願いします.

  • c言語でウィンドウズアプリケーションの作成

    cでウィンドウズアプリケーションを作りたいと思っています。サイトをいろいろ検索してみましたがいまひとつしっくり来るものがありません。 そこで質問なのですがウィンドウズアプリケーションを作るにはなにが必要ですか??できれば無償でやりたいと思っています。 borland社のC conpilarはインストールしてあり、コンパイルはできます。これだけではウィンドウズアプリケーションは作れないのでしょうか?もし可能ならbccだけで作る方法を紹介しているページなど教えていただければ幸いです。 学校で一通りc言語を学習し、ある程度は使えるようになったつもりではいます。OSはwinXPです。 よろしくお願いします。

  • C#のフォームプログラミングを解説した本

    自分は「猫でもわかるC#プログラミング」という本を購入し、ゲームを作成するためにC#を勉強しようとしたのですが、全部読んでみてもコンソールだけで、GUIアプリケーション、C#ではフォームと言うらしいですが、その解説はありませんでした。 そこでC#のフォームプログラミングを解説した良書を購入し、勉強したいと思っています。しかしamazonなどの書籍の解説などを見ても、CUIなのかフォームの事が書かれているのかいまいち分かりません。もし、C#のフォームプログラミングを解説している本で、分かりやすい初心者向けの書籍をご存知の方おられましたら、書籍名を教えて頂けると幸いです。

  • C#のマルチスレッド処理について

    C#のWindowsフォームアプリケーションをつくっています。 .Netではマルチスレッド関連の選択肢がたくさんあるようですが、以下のようなユースケースではどんな組み合わせにするのがいいのでしょうか? UIとは別スレッドでネット接続してデータとってきたものをフォームに反映します。UIはブロックして欲しくなくて、ローディング中にはローディング中にアニメーションを表示したりします。 新スレッドを作って、その完了を待つことはできるんですが、その結果をどうフォームに反映するか、というところがよくわかりません。 C#は初心者なのでコード例やリンクをよろしくお願いいたします!

  • C#でコンパイルできない

    Visual C# 2008 EXPRESS EDITONでコンソールアプリケーションを作成しています。 プログラム上の以下の行をコンパイルできません。 System.Windows.Forms.Clipboard.SetText(string); エラーメッセージは以下のとおりです。 型または名前空間名 'Windows' は名前空間 'System' に存在しません。アセンブリ参照が不足しています。 なお、フォームアプリケーションの作成においては、上記のエラーは発生しませんでした。参照ライブラリを加える必要があるのでしょうか?

  • プログラミングC#が難しくて困っています。

    プログラミングをしたいと思い、独習C#を使ってプログラミングの勉強中です。 プログラミングは全くの初心者です。 他の入門書でもそうなのかもしれませんが、論理演算子やビット演算子、配列などの内容が書かれていますが、これらが一体何の役に立つのか分からなくて困っています。 読んでいても理解できないです。 本にケチを付けているわけではないです。 おそらく私にプログラミングのセンスがないんだと思います。 また、この本では、コンソールアプリケーションの説明が多いのですが、私はウェブアプリケーションに関心があります。 基礎だと思って読み進めるべきでしょうか? サンプルプログラムも地道に本の真似をして自分で打っていったほうがいいのでしょうか? わからないことがあってGoogleで調べても、理解できないです。 本当に、プログラミングが難しいです。 独習C#のような本は、全て理解する必要があるのでしょうか? 質問が多くなって申し訳ありません。

専門家に質問してみよう