- ベストアンサー
将来、C言語でWINDOWSプログラミングをやりたいのですが
C言語を学んでいます。今読んでいるのは入門書ですが、私は若い頃?COBOLで開発の仕事をやってましたので、まぁ、そこそこ勝手はつかめています。 暇な時に先の方まで呼んでみたのですが、どうやらこの本にはAPIというものについての説明は出てこないようです。 将来的にはC言語を使って、WINDOWSのAPIを呼び出してどーのこーの・・・というのを学びたいのですがそういう時に向いている書物はありますでしょうか? 勿論、今読んでいる入門書で引き続き学習した上での「将来の」話ですが。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
まず「独習C」(翔泳社出版)でCの基本を押さえてみてはどうでしょうか?C++も必要なら「独習C++」もあります。 既に回答にある「猫でもわかる」はボリュームはありますが、C/C++の基本、さらにWindowsSDKについても詳しく 触れており非常に参考になります。 ある程度C言語の学習を終えているのであれば 山本 信雄 著 「Visual C++〈1〉はじめてのWindowsプログラミング」 翔泳社 がお勧めです。 私自身Windowsプログラミングをはじめるときに非常に参考になりました。 ちなみにVisual C++〈2〉はオブジェクト指向、Visual C++〈3〉はMFCについて書かれています。 「猫でもわかる」をみれば分かると思いますが、まともにC/C++でWindowsプログラミングを組めるようになるには ある程度の時間を要します。 少し補足したいのですが 現在のところ市販のWindowsアプリケーションのほとんどはC/C++で作られています。 またオープンソースで有名なソフトのほとんどもC/C++です。 Apache、MySQL、OpenSSL、PostgreSQL、Ethereal、Samba・・・ 決してC/C++はマイノリティな言語ではありません。(C++自体完成されているわけではなく現在も仕様追加の選定が行われています) それとMFCとC++は別物ではありません。MFC自体はC++で作られC++のソースが付属しています。 ですから当然C++とWinAPI(SDK)でMFCと同じ機能を持つものを作成できます。 逆にWinAPIとC++の基礎知識がなければMFCを使いこなす事は出来ないでしょう。 (ちなみに無料で配布されているVisual C++ 2005 Express EditionにはMFCが付属しないません。) またWindowsソフトを開発する上でC++の機能とMFCは必須ではありません。 C言語とSDKのみでどのようなWindowsソフトでも作成可能です。
その他の回答 (3)
- gungnir7
- ベストアンサー率43% (1124/2579)
Windowsのプログラミングには大きく分けて3種類あります。 1 C言語を主体としたSDKプログラミング 2 C++ 3 MFC それであなたが現時点で求めているのは1になります。 SDKというのは今から10年ほど前にマイクロソフトが提供していた環境ですが、 当時の名残でC言語+API主体のスタイルをこうよんでいます。 他の方も言っているようにC言語での開発は古いスタイルです。 しかし、SDKは多かれ少なかれ1度は目を通しておくべきです。 既に他の方も言っていますが猫にも分かるシリーズです。 http://www.kumei.ne.jp/c_lang/ そこのところにもC++とSDKとはっきり明記されているでしょう。 しかし、C++ではまともなWindowsプログラムは組めません。 C++の応用版である3のMFCを使うことになります。 C++とMFCの関係はちょうどあなたの勉強しているCとSDKの関係になります。 それでC++というのはオブジェクト指向言語になってきます。 多分、あなたが第一線から退いている間に世の中は変わってしまいました。 オブジェクト指向はそれまでのCOBOLとは全然異なるプログラム観です。 お気楽にいくと挫折することは目に見えています。 でも、windowsの開発環境はオブジェクト指向の方向に向かっています。 以下のリンクに現在の概要が詳しく記されています。 http://www.atmarkit.co.jp/fdotnet/csharp_abc/csharp_abc_001/csharp_abc02.html
お礼
詳細な説明ありがとうございます。非常に解り易い言葉を選んで使っていただきお手数おかけしました。 実はどうしても解読しなくてはならないプログラムが「ここに」あり、非常に困っています。何とか読み解くのも勉強と思って頑張っております。 あ、私は第一線にいた覚えはないのですが(笑)、確かに、私が開発のマネごとをしていた時とはこの世界の事情は違うようです。
- dekopa-
- ベストアンサー率42% (161/378)
C言語の学習と、Windowsプログラムの作成、どっちが最終目的でしょうか? 前者なら「猫でも分かる~」シリーズを読んでください。書籍も、ウェブサイトもあります。 後者なら、C言語なんて捨ててC#とかVBの方が楽です。「Windowsでプログラムを作る」為なら、Cは時代遅れです。 #Cが向いている分野もありますので、Cすべては否定しませんが。
お礼
なるほど。割り切って考えればそうかも知れませんね。 とりあえず皆さんが触れる「猫」シリーズを購入してみます。早速の回答ありがとうございました。
- ddnp009
- ベストアンサー率25% (15/58)
失礼ながら、若い頃にCOBOLをなさったということは、 今おいくつでいらっしゃいますか。 対価を得るための(職業としての)プログラムではなく、 ご趣味としてWindowsのプログラムをなさりたいという理解でよろしいですか。 仰るところのAPIとは、WindowsのAPIであろうと推測しますが、 C言語の書籍(入門書レベル)にWindowsのAPIが掲載されているわけがない。 まずこれ↑。この区別が付いていない以上 冷酷ですがお先真っ暗と思わざるを得ません。 APIを呼び出して云々の気持ちはわかりますが、 今はC言語の守備範囲において学習なさることをお勧めします。 その後に、これらを読まれるとよいのではないでしょうか。 http://www.cbook24.com/bm_detail.asp?sku=4886487270 http://www.amazon.co.jp/exec/obidos/ASIN/4789836908
補足
・まず、現在35才です(笑)。 ・若干、必要に駆られている状況でもあり、趣味と言い切ることのできない状況でもありますね。 ・「この区別」とはどの区別でしょうか?あなたのおっしゃる「この」は何かお教え願えないでしょうか?それが私の疑問の核心のような気もします。 入門書にAPI(勿論WindowsのAPIです)のことが掲載されていないのはボリューム的に当然とは思いますが、「区別」という単語が気がかりです。単にDOSとWindowsの区別という意味でしょうか?単に今持ってる本には(入門書だし)API関係の話は載ってませんということを言いたかったに過ぎません。 ・理由あってC言語で動かす必要があり、良書を探しております。
お礼
ありがとうございます。非常に参考になりました。 現在の私の疑問及び、私の質問の核心である「良書をお教えください」の双方について実に解りやすく教えていただき感謝いたします。