本当の初心者なので教えて下さい。
Win32 App と MFC App とは別物なのですか?
参考書は別々になっているのですか?
MSDNの中に入っているサンプルプログラムは
MFCだけなのですか?
>Win32 App と MFC App とは別物なのですか?
アプリケーションウィザードで使う Win32 App は Console App と対比して使っている
と思います
Win32/Cosole どちらとも MFC を使う事も使わない事も出来ます
私にとっては MFC App と言う表現は恐らく初めて見る物なので何を指しているのか良くは
判りませんが、MFC を用いて作るアプリケーションという意味だとしたら、見方が違うという
ことに尽きると思います
(Win32 App は Windows のしかも 32bit 版の Windows でのみ動作するアプリケーション
ということで、 MFC を使うかどうかには関係しないからですね)
Win32AppはWindowsのAPIを使って作ったApp
MFCはWindowsAPIをC++のクラスでラッピングして
扱いやすく(簡単という意味ではないです)したものです。
本気でWindowsプログラムを習得しようとするのなら
Win32Appから入った方がいいかもしれません。
私がよくこの掲示板でWin32APIからはじめた方がベストですと書いているのは、
Windowsの動作の仕組みを理解するにはWin32APIを使ってプログラミングした方が
より深く理解できると思っているからです。
Windowsの動作原理を既に理解している人や別途 本で学習できる人であれば、
いきなりMFCを使っても何とかすると思います。
Windowsの中で自分が書いたプログラムがOSとどのように関わりあいながら動作して
いるのかというのは、実はとても大切なことです。
これが理解できていれば、MFCを使っていても迷子になることは少ないと思います。
そういう意味ではWin32APIとかMFCとかでなくてWindowsの仕組みを理解しましょう
というのが正解かと思います。
あー。
質問の回答から外れてしまった。
言葉の意味だけで取るとMFC AppもWin32 Appの中に内包されるかと思います。
いおさんが言っている言葉の出所をきちんと示さないと説明しづらいです。
Win32APIと言う意味でいくとMFCとは別物ですね。
MFCは、クラスで構成されていますが、
Win32APIは、C言語が基本です。
同じ画面の処理をそれぞれ作成すると一見同じ画面の物とは思えないと思います。
これは、MFCがコードの大部分をラップして見えなくしている所為です。
ですから、参考書も別物になります。
ただ、MFCで作成したアプリの中からWin32APIの関数をコールするなんてことは
よくやる話なのでMFCだけ分かっていれば問題を解決できるわけではありません。
この辺はケースバイケースなので色々経験を積まないと分からないかもしれないです。
>Win32 App と MFC App とは別物なのですか?
ソースコードとしては別物に見えるみたいですね
私は、MFCから入りました
なぜなら「APPWIZARD」で生成されるコードがMFCで
コンパイラ入門版の解説書が「MFC」だったから
周りに教えてくれる人が少なかったり、自分の目に映る参考書で目立つ文字
が「MFC」だったというのもありましたけど
全然やったことない人は入りやすいかも?
ただしC++の基礎を覚えようと思うのであればお勧めできないと
私なりに思います
ほかのUNIXマシンの作業へ移行され仕事としてC/C++をこれからも
使っていこうなんて思っているひとは「Win32 Api」から入ったほうが
いいと思います
俺のようにいい加減に作って、それが動けばいい程度の人なら
どちらでもいいんじゃないですか
基礎がわかりたい・いい加減なもの作りたくない・パフォーマンス優先のもの作りたい
など色々あるでしょうけど・・
まずは、自分でどちらから入るのが入りやすく自分にあっているかになると思います
質問の内容からすると、これから「コンパイラ・ツール」を購入するための参考意見
がほしいように聞えますけど どうなんでしょうね?
人の意見聞くのも重要だけど、実際に使ってみて経験するのがいちばんですよ
VC++6.0では新規作成で「MFC AppWizard(exe)」「Win32 Application」とかが選べるよう
になっています。
まあ、MFCを使うか使わないかの違いということになるかと思います。
MFCを使うとなると、多くの場合は骨格がMFCにおんぶにだっこということなり、造りが違っ
てきます。
なので、参考書も違ってきます。
MSDN(ヘルプ)はWin32APIもMFCもその他も説明してるので、サンプルはそれぞれです。
私はMFCから入りました。
MFCは何も知らなくても短時間で動くもの(使えるものかどうか別として)がつくれるように
なります。
つまり、あまり学習せ(なにも知ら)ずにして、ある程度の(動く)ものがスグにつくれる
ようになります。
内容の理解は後回しにして、MFCの提供する機能を先取りということですね。v(^_^)
まあ、ブラックボックスにつきあえる能力が必要かと思うが、、、
MFCを使わないとなると、多くの学習と理解を得ないとそのレベルにでさえ達成できません。
まあ、学習と理解せずにコピペして・・・という手もあるだろうけど、それではMFCのブラッ
クボックス使用と同じになってしまう。
なので、私としては即(能力以上の?)成果物を得られるMFCからの入門を薦めています。v
(^_^)
まあ、時間がかけられ、じっくり学習できる人は、Win32APIからはじめられるといいでしょ
う。
その方が正攻法だとは思うので、、、
C++と「新Visual C++6.0入門」ビギナー編で勉強してプログラムを作っていました。
この本にはMFC AppWizardの事しか載っていなかったのでVC++はMFC AppWizardの事だと
思い込んでいました,その後「VC++逆引き大全500の極意」を購入し,様子が違っていた
ので戸惑ってしまいました。
「・・入門」はMFC AppWizardの参考書で,「・・極意」はWin 32 Appの参考書だったの
ですね。VC++の中に色んな種類があるのならその旨参考書の表紙にでも書いておいてくれ
たら良いのにと思いますが。
MFC AppWizardとWin 32Appは別物という事,分かりました。
MSDNの中にWin 32Appのサンプルプログラムがありました。
Win32APIが面白そうなので,こんどはこちらを勉強しようと思います。
とても参考になりました。有難うございました。