• ベストアンサー
  • すぐに回答を!

MFCなのかWin32APIなのか

みなさんはじめまして。グフです。 これからWindows上でC/C++(VisualStudio.NET2003) にて、Windowsアプリケーション開発の勉強を始め ようとしています。 いろんなサイトや書籍を見ている中で、Windowsアプリ の開発方法としてMFCをつかうやり方と、Win32APIで 開発する方法の2つがあることがわかりました。 これからWindowsの勉強を行うにはどちらの方法で開発 するのが望ましいのでしょうか? ケース by ケースだとは思いますが、何かアドバイス いただければと思いまして、投稿させていただきました。 やはり基礎からおさえるのであれば、Win32APIの方が よろしいのでしょうか? 今後のWinFX環境を考えると、Win32APIでの知識が無駄 になってしまうということはないのでしょうか?

noname#77208

共感・応援の気持ちを伝えよう!

  • 回答数5
  • 閲覧数1701
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.5

>ゲームはやはりWin32APIとDirectXで作られているパターンが多いのでしょうか? はい。例えばDirectX9にくるC++のサンプルは9割がSDKで作られています。 MFCで作る場合のサンプルもありますが、ゲームを作る場合 MFCの恩恵はほとんどないので、SDKがメインです。 >業務アプリケーションへの適用も考えています。 MFCと同じ機能をSDKからつくろうとするとむちゃくちゃ大変です。 (例えば印刷プレビューとか) 業務アプリの場合イレギュラーなことをしない限りMFCで作ることが多いかもしれません。 ただやはりSDKを理解したうえでMFCを使うべきだと思います。 SDKの解説サイトで一番有名なサイトです。 「猫でもわかるプログラミング」 http://www.kumei.ne.jp/c_lang/ 書籍なら 山本信雄著 VisualC++(1)はじめてのWindowsプログラミング がお勧め。 http://esbooks.yahoo.co.jp/books/detail?accd=30630203

参考URL:
http://www.kumei.ne.jp/c_lang/,http://esbooks.yahoo.co.jp/books/detail?accd=30630203

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • MFCとWIN32API

    はじめまして、コンピューターを勉強し始めた学生です。最近OSについての基本的な勉強を始めたのですが、ちょっとAPIのところで分らなくなりました。MicrosoftのWIN32とMFCは全くの別物なんですか?どちらもWindowsのSoftware開発に関わりが在りそうだとは思っているのですが... 何かとんでもない間違った質問をしている様な気もするのですが、誰か知っている人教えてください。

  • .Net Framework APIがあればMFCはいらないのでは?

    最近Windowsプログラミングに興味を持ちましていろいろと調べている所なのですが、疑問に思ったので質問させて下さい。 質問の内容はタイトルどおりなのですが、 windowsのシステムが.Net Frameworkに統一されようとしている今、.Net Framework APIがあればMFCを新しく勉強する価値は殆どないと思うのですが、この考えは間違っているでしょうか? 例えば、下の本(実物はまだ見てません) http://www.amazon.co.jp/exec/obidos/ASIN/4797324201/249-5720925-3989928 では「 MFCを利用したWindowsネイティブプログラムから,最新の.NETアプリケーションの作成方法まで,..」 と紹介されてますが、VC++.NETでプログラミングするのに、なんでMFC?なんて思って仕舞うのですが、MFCでないと出来ないことがあるのでしょうか?

  • Win32APIは覚えて損する?

    Win32APIは現在一般的に出回ってる32Bit版Windowsの ApplicationProgramingInterfaceですよね? これがそのうち一般的に出回るのが64Bit版Windowsに なったときもWin32APIを勉強したときの知識は役に たつのでしょうか? またWin16→Win32に変わったときはどのような感じだ ったんでしょうか? あと少々質問とずれてしまいますが○○Bit版Windowsの [○○Bit版]はどのような意味を持つのでしょうか? 暇なときにでも回答できたらお願いします ※ ○○=16 or 32 or 64 など

その他の回答 (4)

  • 回答No.4
  • terra5
  • ベストアンサー率34% (574/1662)

WinFX考えるなら、MFCもアウトでは? 限定的なMFCよりWin32APIをすすめます。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

そうですね。WinFXであればMFCもダメっすね。 Win32APIから抑えていくことにします。

  • 回答No.3

#1の方とまったく同意見です。 >Win32APIでの知識が無駄になってしまうということはないのでしょうか? それはありません。 MFCからはじめても、応用がきかなくなると思いますし結局はWin32APIを 学習するはめになります。 MFCはSDK(Win32API)をクラスにしてをラッピングしているものです。 ですからMFCを理解するためにはC++とWin32API、両方の理解が必要です。 あと何を作りたいかによっても重点が違います。 MFCを使って作っているゲームなんてあまりみかけません。 あと有名なソフトはSDK(Win32API)から作っていることが多いです。 MFCはちょっとしたソフトを作るのは楽ですが、大規模なソフトになると その仕様が足かせになります。いきづまったときMFCのソースをみることになり 結局、SDK(Win32API)を使った自作のクラスに置き換えるなんてこともありえます。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

やはりWin32APIはきっちり抑えておかないとダメそうですね。 急がばまわれで、基礎からきちんと勉強していくことにします。 作りたいものとしては、まずは個人用のツール、知識がついてきたところで、 業務アプリケーションへの適用も考えています。あと個人的にはゲームも作ってみたいですね。 ゲームはやはりWin32APIとDirectXで作られているパターンが多いのでしょうか?

質問者からの補足

Win32APIに関して参考になる書籍、またはWEBサイトがあれば教えて頂けないでしょうか。

  • 回答No.2
  • honiyon
  • ベストアンサー率37% (331/872)

こんにちは、honiyonです。  個人差はあるかと思いますが、私の場合ですと、  Win32、MFCは当初挫折しました(笑)  現在も完全とはいえませんが、100%Win32APIのみの開発は可能です。MFCも必要な所は勉強して使えるようにはなっています。  私はVBから入門し、より効率を求めてDelphiを覚え、その上でWin32を学び、面倒だと不満を感じる所はMFCで補うというやり方で覚えていきました。  尚、上記でDelphiとありますが、これは元々趣味でTurboPascalを使った開発をしていたので、ここでDelphiが出てきたのだと思います。   以上、参考になれば幸いです(.. KTBBS懐かしいな(笑)

共感・感謝の気持ちを伝えよう!

質問者からのお礼

Win32APIをメインとして開発し、MFCで面倒なところを補うということですか。 やはりベースとしてWin32APIをきっちりとおさえておくほうがよさそうですね。 ちなみに私はプログラミングはCから入門しFORTRAN, VB,COBOL,Java,C#,C++と変遷してきました。 ここにきてWindowsでしっかりプログラミングしようと 思うとC/C++でWin32APIの知識が必要なのかなと感じてきているしだいです。

質問者からの補足

Win32APIに関して参考になる書籍、またはWEBサイトがあれば教えて頂けないでしょうか。

  • 回答No.1

MFCの方が楽ですが、Win32-APIを何も知らずに使えるものではありませんし、MFCではできないことをWin32-APIで補わなければならないことも少なからずあります。ともかくもWin32-APIのキモは押さえておかないと。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

やはり基本はWin32APIですね。基礎からしっかり積み上げて いくことにします。

質問者からの補足

Win32APIに関して参考になる書籍、またはWEBサイトがあれば教えて頂けないでしょうか。

関連するQ&A

  • Win32APIのゲームやアニメーションについての書籍

     Win32APIでゲーム(もぐらたたき)を作りたいのですが、Win32APIでゲームを扱っている書籍が少ないような気がします。(テトリスは多いですが)  もう一つ、DirectXでは画像やアニメーションの本はたくさんありますが、Win32APIではアニメーションの作り方について、多数しかも手取り足取り載っているのが見当たらないです。特にビットマップエディタの使い方がよく分からなくて困っています。Visual Studio 2005のVisual C++を使っています。  ちなみに今まで「Windowsゲームプログラミング 赤坂玲音著」で勉強して、ちょこちょこサイトでアニメーションを勉強しましたが、自分でアニメーションを作ろうと思うとあまりに情報不足な状態です。  Win32APIのゲームやアニメーションについての書籍やサイトがあれば教えていただけたら嬉しいです。

  • .NET Frameworkって一体何?

     近年、.NET Frameworkという言葉が流行っていますが、これは一体何なのでしょうか?  従来のようにWin32APIやMFCを使ったアプリケーションとは、かなり質が異なるもののように思われます。  .NET Frameworkに対応したアプリケーション開発ができると、どのような利点が生まれるのでしょうか?  また、次期WindowsといわれるLonghornでは、.NET Frameworkが非常に重要視されているように思います。 そして、こうした時代の流れを察するに、Win32APIやMFCのみでのアプリケーション開発をしてきた私も、.NET Frameworkとは一体何かを知らなければいけないと思うようになりました。  私はまだ何も確証は持てないのですが、.NET Frameworkはコンポーネント技術と何かしら関係があるように思います。しかし、そのような気がするだけで、何がどうなって、.NET Frameworkが構成されているのかまったくわかりません。.NET Frameworkがあると、将来どのようなことが実現可能になるのですか?

  • C++とWin32APIでタブコントロールを作成するには

    C++のWin32APIで、MFCを使わずに、 ダイアログボックスの中にタブコントロールを実装したいのですが、 その方法が解らず困っています。 とりあえずウインドウにタブコントロールを 付ける事まではできたものの、 (MFCを使用しない方法で)ダイアログボックスの中に 表示させる方法が見つからないのです・・・。 VisualStudioを使用しているので、 ツールボックスの中にある「Tab Control」というものを ダイアログボックスの中に貼り付けてみましたが、 [Tab1]~[Tab5]までありますが見た目上だけのものなので、 当然実行してもそこには何もありません。 (項目も、タブを切り替える処理も追加してないので 当たり前ですよね^^;) この方法はやはりMFCを使用しないと無理なのでしょうか? もし方法がございましたら、どうかご伝授をよろしくお願いします

  • MFC

    扱うテーマはMFCやWin32APIです。 ↑これが扱える手ごろなアカデミック版での開発ツールって御座いますか? また、アカデミックではないようですが[Visual C++.NET]あたりが調べた所、値段的に手ごろな感じがしたのですが…。他に良いもの有りましたらご教示下さいm(_ _)m宜しくお願いします。

  • MFC、APIについて教えてください

    はじめまして、dio-dioです。 今回からこのOKWaveにお世話になります。 よろしくお願いいたします。 早速ですが、質問させていただきます。 私はSE目指してプログラムを勉強していますが、 MFC,APIを使って2つのファイルを比較し、合成して 新たなファイルを作成するというプログラムを 作成することになりました。 ファイルはiniファイルを用います。 私はVB6を使用したことがあるのですが、形は似ていても MFCはまったく違う形式の言語です。 今まで一度もMFC使用したことがありません。 APIの関数も使用したことがありません。 そこでみなさまに助けていただきたいのです。 MFCの使用方法がよく分かるサイト、本など知っている方 教えてください。 あと、APIを使用したプログラムを作成するに当たって、 サンプルプログラムなどが記載されていてすぐにでも プログラム作成に参考になるようなサイトを知っている方 教えてください。 とてもわがままなお願いでしょうが大変困っています。 2週間でプログラムを作成しなければならず、時間がありません。 みなさまの助けが必要不可欠です。 どうか宜しくお願いいたします。

  • MFCについて

    最近、Visual Studio 2005で、win32アプリの作成を勉強しようと思い、 猫でもわかる・・・のサイトを参考にさせて頂き勉強を始めたのですが、 色々と質問させてもらってるうちに、MFCというものの存在を知りました。 具体的にどんな物なのかも解ってないのですが、 SDKで組んでいくよりも、比較的楽にプログラムが組んでいけ(ソースが少なくていい)、MFCの方がメジャーに使われている、というようなことを聞いたのですが、 実際どちらを勉強するべきなのでしょうか? APIについてはどちらも勉強しなければならないと聞いたのですが、 MFCの方がメジャーで楽ならMFCの勉強した方が良い気がしたので 詳しい方教えていただけませんか? よろしくお願いします。

  • win32api ゲストに実行されるとファイルにアクセスできない

    win32api ゲストに実行されるとファイルにアクセスできない 現在win32apiでアプリケーションを開発しています。 そのアプリケーションを管理者に実行された場合はいいのですが、ゲストに実行されるとprogram file内にあるファイルにアクセスできなくなってしまします。 そのファイルのアクセス権をゆるくもできますが、できればそのファイルを非管理者のユーザーにいじってほしくないのです。 プログラムからはファイルにアクセスしたいけど、非管理者のユーザーからはそのファイルを保護したい、なんてことは無理でしょうか? 回答よろしくお願いします。

  • C++/CLIについて

    現在C、C++を1部、WIN32を習得しているのですが、ウィンドウアプリケーションを作るときは全てWIN32APIを使用して作っています データベースを使ってみようと思い、VS2005(Pro)についていたSQLEEを使ってみようと色々と調べたんですが、ほとんどの書籍やサイトがVBかC#を使用していました しかし、VBやC#でプログラムを書き直すのも大変なのでどうしようかと思っていたらC++/CLIなるものの存在を知りました そこでC++/CLIの勉強をしてDBを使おうと思ったのですが、何分習得言語以外の知識が足りないため不安なところを質問させてください 以下質問 1、VB、C#、C++/CLIとC+WIN32の大きな違いは.NETFrameWorkが使えるか使えないかということであっていますか? 2、多くの書籍がVBやC#とDBを組み合わせているのは、.NETに含まれるADO.NETを使用するからですか? 3、C/C++を習得するとMFCを習得するのが一般的なようですが、MFCのメリットがイマイチわからないので教えてください(WIN32で十分代用可能なため) 4、C++/CLIを習得すればMFCは必要ありませんよね? 以上質問の数が多いですがよろしくお願いします

  • XPの頃のWin32APIの本などはまだ役に立つ?

    1999年頃学生でC言語を勉強し平行してC言語だとWindowプログラムが 作るのが大変だったことからVBも少しやりました。 頭が悪かったもので、その後、VC++6.0を使いWindowsプログラミングを 作る以前の段階で挫折し勉強の難しさに悶絶し病んで廃人となりニートをやっていました。 その後、なんとなくプログラミングに未練があり、Windows APIの本を買ったり JAVAの本を読んだりHTMLやVBS、CSSなどを勉強してみたりしましたが 途中でいつも投げ出して中途半端でした。 そして再び、最近、プログラミングの本を読む機会があり、 知り合いの友人に感化されたこともあり、 Rubyを勉強し始めたのですが、 Win32 API? RubyでWindowsプログラミングを作ることに特化した本が200円で売っていたので 2007年の本でしたが購入してみました。 Win32OLEについて解説してありました。 Rubyに関する知識がまだあやふやな部分があり、またCOMやAPIに関する知識も ???なのであまり理解できませんでしたが、 なんとなく雰囲気のさわりのさわりぐらい分かりました。 とりあえず、昔は頭が悪く非常に精神的にも混乱していて よくわからずなんでも取り組もうとしてしまいました。 WEBページなどの処理をするにはHTMLのほかにDOM、CSSなどの知識 Java scriptなどの知識であっているでしょうか? ruby php phython perl などいろいろあるがこれは特性をみて自分がやりたい言葉のようなものなので 母国語を一つマスターすべきということは理解しました。 また、Windowsプログラミングを作るのであれば、 APIやCOMなどの知識があればいいのでしょうか? FLASHやActiveXのように現在お目にかからない仕様もあるのですが、 これらも内包していまでも学ぶ価値はあるのでしょうか? 出来ればでいいのですが、 安く仕入れられるプログラミング書籍でも活用が可能な技術を 教えてください。 教えてくださいと言ってもC言語を覚えればOSだって作れるよとか アセンブラ覚えれば完璧ですとかそういうのは無しで 一般的なバカなおじさんがなんとなプログラミングを作るうえで知っていた方がいい 知識や導入方法、パーツなどを教えてくださいよろしくお願いします。 一応、今、RubyとVBS、CSS,HTMLを勉強しています。 DOMの知識はあまりないです?説明してみろといわれてもあやふやな答えしかできません よろしくお願いします。

  • MFCやAPIの学習法?

    VisualC++駆け出しの者です。 何とか入門書(林晴比古氏著 ビギナー編&シニア編)に一通り目を通し、これから自分でWINアプリを作成しようという所なんですが。 入門書レベルではほとんど何も出来ず、MFCやらAPIの勉強が必要だということに気づきました. そこで質問なんですが、MFCとAPIどちらから覚えるのが良いのでしょう。 効率良い学習法をご教授して頂けませんでしょうか? また、初級者にも分かりやすいMFC&APIについての関連サイトやお勧め書籍等ありましたら、ぜひ紹介お願いしたいです。 当面の目標は小規模の個人用ツール等を1人で作る程度ですが、将来的には覚えた技術を生かす仕事につきたいと考えております。 ”そもそも考え方自体間違っているよ。”等の指摘がありましたら、容赦なく突っ込んでください。 補足 C言語(++ではない)は仕事で2年ほどやっております。VB含めその他の言語はほとんど未経験です。 長くなりましたが、どうかよろしくお願いいたします。