![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_16.png?5a7ff87)
現在、C言語を学習していてコンソールアプリケーションや
Web上のCGI等は作れるようになってきました。
次の学習ステップとしてWindowsのアプリケーション作成
か、C++の言語学習にするかを悩んでいます。
C言語でのWindowsアプリケーション開発であれば、SDK(Win32API)に
よる開発になると認識しています。この場合であれば特にC++の知識は
不要でしょうか?それともSDKでの開発の場合でもC++の知識は必須に
なるのでしょうか?
MFCとかを使うのであれば、C++の知識は必須ですよね?
あるいはこれからの開発ではオブジェクト指向の知識は必須である
ということでC++の学習を経て、Windowsアプリの開発について学習した
方がよろしいでしょうか?
最終的な目標はC/C++にてWindows/Linuxアプリの開発ができるように
なりたいと思っています。
当面Windowsアプリを開発するにあたって、C→SDKもしくは
C→C++→SDK/MFCのどちらが効率的な学習ステップになるのでしょうか?
皆さんのアドバイスをいただければ幸いです。
No.1ベストアンサー
- 回答日時:
悩みますね。
MFC or SDKの選択は。質問を順に、私なりの回答を書いてみます。
「SDK(Win32API)によるアプリケーション開発でのC++知識は必要か?」
C++の知識はあんまり必要ではないと思います。
無くても十分に開発は可能です。
但し、C++で出来ているDirectX等を扱う場合、
クラスを利用するレベルでの知識が或る程度必要かと思います。
そんなに難しいものではありません。
「MFCとかを使用する場合」
C++の知識は必要になります。
クラス構造、生成・消滅・派生・継承・仮想クラス・仮想関数等の概念が
理解できているかといったレベルの知識が
最低限必要になると思います。(殆どか…)
「C→SDKもしくはC→C++→SDK/MFCのどちらが効率」
くどいようですが、私的見解です。
■SDK(Win32API郡)
SDKの基礎は、Windowsの処理形態を把握する事です。
理解は難しくはありません。その代わり、判りにくいです。
しかし…SDKの難点はやはり、そのライブラリーの煩雑さです。
超巨大煩雑関数ライブラリー郡といっても過言ではありません。
学ぶと言うより、馴れる事です。
処理したい内容をヘルプか書籍等で索引して関数を見つけ
ドコで処理するかを検討し
その関数に必要な関数・変数をまた検索して…
誤作動を起こす場合は、もう一度ヘルプを見るか…ry
…
ま、難しくは無くメンドクサイの一言です。
■C++→MFC/SDK
無難かと思います。
MFCはWin32API(SDK)をC++(class object)にパッケージしたカンジのものです。
MFCを見本にC++を勉強し理解しながら、MFCも学んで行くのがベストと思います
MFCの構造自体C++でオブジェクト指向(ぽい)ので、
良い勉強にもなります。
実際のクラス構造と実行順序とかデバッカ-で確認しながら
どのようにクラスが挙動(?)してるのか判りやすいと思います。
しかし、C言語からいきなりMFCだと実行区分がわかりにくいとおもうので、
頭に軽く入れるレベルでC++の基礎をざーっと、念頭に置く位の理解してから
MFCを学び始めた方が良いと思いますです。
クラスや関数・変数作成もマウスクリックで出来ますし。
ヘルプも充実してます。
MFCが判らなくなったら、も一回C++の基礎をざーry
と、こんなカンジでいかがでしょう?
オブジェクト指向については、どっぷりMFCに浸かってみれば段段と判ってくる思います。javaるのも手ですが…
と、超私的見解でした。
ちなみに私はというと、
BASIC→Z80/68/86ASM→C&Win32API→C++ →イロイロ
と、言うカンジに独学路線でC++とAPIを曲解しつつ自作へたれオブジェクト作りながら、
MFCの便利さ(開発速度)に目からウロコで前が見えない状況を一昔前に味わいました(;;
仕事プログラマーとして進むつもりなら、
MFC/.NET(/java/Rudy)の方が良いですよ。と、老婆心。
お礼が遅くなってしまい申し訳ありませんでした。
まずはC++の基礎をおさえ、その後SDK→MFCのステップで
勉強していこうと思います。
No.2
- 回答日時:
>C言語でのWindowsアプリケーション開発であれば、SDK(Win32API)に
>よる開発になると認識しています。この場合であれば特にC++の知識は
>不要でしょうか?それともSDKでの開発の場合でもC++の知識は必須に
>なるのでしょうか?
必須でもなければ不要でもありません。
覚えておいたほうが便利だというところです。
個人的にはMFCより先にSDKを学習した方が良いかと思います。
MFC自体は簡単にいえばSDKをクラスにしたものですが、
MFCに入る前に、とりあえずウインドウ上に絵をかけるぐらいの知識は欲しいです。
またMFCは小回りが効きにくいといった感があります。
MFCを熟知すれば問題ないのでしょうが
なんにせよMFC自体が膨大なソースコードですし、
ちょっとイレギュラーなソフトを作ろうとすると躓きます。
結局なんのソフトを作りたいかに依るところがあって
MFCの方が効率的な場合もあるし、その逆もあります。
とりあえず、SDKとC++両方を触ってみてやりやすい方から学習すると良いと
思いますよ。C++の知識はSDKでも生かせますし、SDKの知識もC++やMFCで
生かせます。
お礼が遅くなってしまい申し訳ありませんでした。
まずはC++の基礎をおさえ、その後SDK→MFCのステップで
勉強していこうと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(開発・運用・管理) VisualStudioSetup.exeの設定について(Rustのインストールの準備として) 2 2023/04/17 12:54
- IT・エンジニアリング バックエンドエンジニアに転職 2 2022/04/07 00:51
- C言語・C++・C# アプリ開発について 初心者です phythonをはじめに学んで、c#かswiftのどちらかを学ぶのは 2 2023/07/09 19:18
- Android tar.ファイルのインストールについて知りたいです 2 2022/07/23 15:34
- その他(ソフトウェア) ソフトが異常終了します 1 2022/08/28 01:41
- Windows 10 Visual StudioとVisual C++ Build Toolsについて 1 2023/04/16 03:42
- 心理学 自分が直接体験しなくとも、他者の行動を観察することによってその行動を学習することを( C )という。 4 2023/04/28 15:06
- Outlook(アウトルック) 【 Windows 10 】アドレス帳に正しくインポートを完了させたい。 3 2023/04/23 13:41
- 中学校 中3です。今回の期末テストで数学が36点でした。前回の中間は数学、14点です。 数学の提出物は出して 1 2022/11/17 17:48
- C言語・C++・C# Switch向けにpcでc言語でゲームを作っているのですが、開発環境はWindows10のvisua 1 2022/04/02 07:04
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JavaMailを使う前のTomcatの設定
-
Java開発って何ですか?
-
JavaScriptの開発環境について
-
Eclipseソース開発画面の行番号...
-
C言語を教えてお金を得たい
-
Web開発について
-
Strutsなどのフレームワークが...
-
AndroidとJavaの違いについて
-
ストラッツ(Struts)って本当に...
-
C++C#ゲーム開発においての差違...
-
この便利な時代に開発環境すら...
-
C言語によるバイナリファイルの...
-
ログイン機能について
-
Visual C++ Express Edition 20...
-
「C#ができればJavaもできる」...
-
javaの現状
-
オラクル社とは
-
Webアプリケーションを開発する...
-
Webアプリケーション開発を学ぶ...
-
ASP.NETでの実行環境
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipseソース開発画面の行番号...
-
「C#ができればJavaもできる」...
-
プログラミング開発経験とは?
-
オブジェクト指向について
-
プログラミング言語について
-
この便利な時代に開発環境すら...
-
文字列に半角スペースがあるか...
-
フリーソフトの作成言語
-
JAVAを使って管理システムを構...
-
TOMCATとANDROIDSTUDIOの違い
-
WeblogicでStrut...
-
JavaMailを使う前のTomcatの設定
-
PowerBuilderの知識が必要です。
-
今でも、TomcatとApacheの連結...
-
iPodでゲームソフトを製作する方法
-
AndroidとJavaの違いについて
-
プリクラの様な画像処理(webカ...
-
android開発環境アンインストール
-
コマンドボタンの文字が消える!
-
Javaでバッチ処理
おすすめ情報