• ベストアンサー

将来、C言語でWINDOWSプログラミングをやりたいのですが

C言語を学んでいます。今読んでいるのは入門書ですが、私は若い頃?COBOLで開発の仕事をやってましたので、まぁ、そこそこ勝手はつかめています。 暇な時に先の方まで呼んでみたのですが、どうやらこの本にはAPIというものについての説明は出てこないようです。 将来的にはC言語を使って、WINDOWSのAPIを呼び出してどーのこーの・・・というのを学びたいのですがそういう時に向いている書物はありますでしょうか? 勿論、今読んでいる入門書で引き続き学習した上での「将来の」話ですが。

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

  • ベストアンサー
  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.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ソフトでも作成可能です。

Muhallebi
質問者

お礼

ありがとうございます。非常に参考になりました。 現在の私の疑問及び、私の質問の核心である「良書をお教えください」の双方について実に解りやすく教えていただき感謝いたします。

その他の回答 (3)

  • gungnir7
  • ベストアンサー率43% (1124/2579)
回答No.3

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

Muhallebi
質問者

お礼

詳細な説明ありがとうございます。非常に解り易い言葉を選んで使っていただきお手数おかけしました。 実はどうしても解読しなくてはならないプログラムが「ここに」あり、非常に困っています。何とか読み解くのも勉強と思って頑張っております。 あ、私は第一線にいた覚えはないのですが(笑)、確かに、私が開発のマネごとをしていた時とはこの世界の事情は違うようです。

  • dekopa-
  • ベストアンサー率42% (161/378)
回答No.2

C言語の学習と、Windowsプログラムの作成、どっちが最終目的でしょうか? 前者なら「猫でも分かる~」シリーズを読んでください。書籍も、ウェブサイトもあります。 後者なら、C言語なんて捨ててC#とかVBの方が楽です。「Windowsでプログラムを作る」為なら、Cは時代遅れです。 #Cが向いている分野もありますので、Cすべては否定しませんが。

Muhallebi
質問者

お礼

なるほど。割り切って考えればそうかも知れませんね。 とりあえず皆さんが触れる「猫」シリーズを購入してみます。早速の回答ありがとうございました。

  • ddnp009
  • ベストアンサー率25% (15/58)
回答No.1

失礼ながら、若い頃に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

参考URL:
http://www.geocities.jp/ky_webid/book/index.html#win32api
Muhallebi
質問者

補足

・まず、現在35才です(笑)。 ・若干、必要に駆られている状況でもあり、趣味と言い切ることのできない状況でもありますね。 ・「この区別」とはどの区別でしょうか?あなたのおっしゃる「この」は何かお教え願えないでしょうか?それが私の疑問の核心のような気もします。  入門書にAPI(勿論WindowsのAPIです)のことが掲載されていないのはボリューム的に当然とは思いますが、「区別」という単語が気がかりです。単にDOSとWindowsの区別という意味でしょうか?単に今持ってる本には(入門書だし)API関係の話は載ってませんということを言いたかったに過ぎません。 ・理由あってC言語で動かす必要があり、良書を探しております。

関連するQ&A

  • C言語を学習することに将来性はあるのか

    現在C言語を勉強中なのですが、C言語自体の将来性はどのくらいあるのでしょうか? せっかく勉強するので、できれば将来性のある言語に重点を置いて学習したいと思って います。 よくC言語は枯れた技術だと言われることが多いのですが、これからはC++やJava等が 使われることが多くなり、C言語はあまり使われなくなる言語なのでしょうか? 現状はゲーム分野や組み込み分野ではC言語は現役バリバリに使われていると 聞いているのですが、今後はJavaやC++といった言語がこういった分野でも 主流になってくる(C言語に取って代わる)のでしょうか? C言語自体、あまり将来性がないようであれば、今後勉強するに当たって、 C言語をとことん追求するよりも他の言語に学習の重点を移行させたいと 考えています。 私自身はプログラムを勉強し、将来はゲーム制作あるいは組み込み分野の 開発に携わりたいと思っています。 こういったことに詳しい方がおられましたら、ぜひ教えて頂けないでしょうか?

  • Windows上でC言語を勉強したい。

    私は現在専門学校でC言語の勉強をしています。 自宅のwindows上でもC言語を学習したいのですが、どうすればいいのかわかりません。 web上の”C言語開発環境~”ソフトをインストールしてみたものの、使い方が全く分からずに困っています。 学校ではfedora7を使って端末からC言語の記述とコンパイルをしています。windows上でも同様にC言語の学習ができないでしょうか?参考になるサイトなどありましたら教えていただけると助かります、よろしくお願いいたします。

  • C言語の次のステップは?

    現在、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のどちらが効率的な学習ステップになるのでしょうか? 皆さんのアドバイスをいただければ幸いです。

  • C言語を1から始めるのですが・・・。

    学校でこれからC言語を学習することになっているのですが、(高1で す)3年間ずっとC言語をやり続けるので、絶対に好成績がとれるよう に、そして将来なにか役立てられる時があれば役立てたいのでしっかり マスターしたいんです。 そこでC言語を最初から学べる本を買おうと思うのですが、何かお勧め の本はありますでしょうか? 本じゃなくても、「自分はこうやってCを学んだよ」「このサイトはと てもわかりやすい」などなど、どんな事でも構いませんので是非アドバ イスよろしくお願い致します。

  • プログラミング言語で環境

    こんにちは。 COBOL言語の総合開発環境はあるのでしょうか?? COBOL言語を紙面で勉強したことはあるのですが、 プログラムとしてコンピューターに打ち込んだことはありません。 また、勉強したのですがおすすめがあれば教えてください。 ※ ちなみにC言語の勉強するお勧めは[visual studio]ですよね??

  • C++でWindowsプログラミングを学習できる書籍教えてください

    C++でWindowsプログラミングを学習できる書籍教えてください 現在C++を学習中で、Windowsプログラミングの教本でいいのがあったら教えてください。 (分かりやすかった、楽しく出来たなど何でもいいです。) 今までは、「猫でもわかるC言語プログラミング」→「猫でもわかるWindowsプログラミング」→ 「独習C」→「Windowsゲームプログラミング」→「独習C++」といった流れの教本で学習し、 次にC++でWindowsのプログラミングを学習しようとしています。 本屋やネットでも探してはいるのですが、いまいちピンとくる本がなくて・・・ あれば教えてください。 今の本は後一週間くらいで終える予定です。

  • プログラミング言語の入門書について

    今、PHPを独学しているんですが、ちょっとした疑問があります。 WEB系のプログラミング言語を選ぶためにいろいろ調べていたとき、 『PHPはPERLがわかれば、大体わかる。』と何かで見ました。 で、 『RUBYはPERLが進化した言語だからRUBYがわかるとPERLがわかる。逆は無理』という話も見たことがあります。 ということは、RUBYをマスターすると色々わかるのでは? と思ったのですが、RUBYの入門書の書評を見ると、『全くの入門者には難しい』とありました。 じゃぁ…とPERLの入門書の書評を見ても同じような内容が… PHPの入門書を調べてもこれまた同じ WEB系のプログラミング言語の入門書~初心者向きの本に良書は少ないものなのでしょうか? ついでに、『入門者にとって、これはいい本だよ』という本があれば教えてください。 ちょっとした疑問なので、お暇な時にでもお答えいただけたら幸いです。

  • C++とWIN32APIとゲームプログラミング

    WINDOWSで動くゲームを作りたくて3日ほど前からC++の勉強を始めました。 (最終的にはグラディウスのような横スクロールシューティングが作りたいです。) そこで質問なんですが 1、Win32APIについて調べるとC言語を使っての入門サイトばかりがヒットします。 Win32APIはC言語で書くものなんでしょうか? そうなってくると今WindowsのGUIアプリを作るのにC++を勉強していますが無駄ってことでしょうか? 例: 猫でもわかるプログラミング http://www.kumei.ne.jp/c_lang/index.html Win32API入門 http://wisdom.sakura.ne.jp/system/winapi/win32/index.html ちなみに今学習に利用しているサイトは以下のサイトです。 C++入門 http://www.asahi-net.or.jp/~yf8k-kbys/newcpp0.html 2、ポインタの概念について ポインタのイメージですが値を格納している場所みたいな感じで大方あってますでしょうか? 僕は組み込み系をやっているのでアセンブラにどっぷり漬かっています。 なんていうかレジスタの番地がポインタに該当するのかなって思っています。 ↓みたいなイメージで考えています。 ポインタ=データの場所=レジスタ番地 これであってますか? 3、まだGUIには進んでませんがウインドウのメニュー(ファイル、編集等)を作るのにリソースファイルも作るって説明が上記ページ(猫でもわかる)に書いてましたがリソーススクリプトとかヘッダーもプログラム言語とは別に勉強する必要があるんでしょうか? 4、C++のクラス概念について クラスとは複数の関数をひとまとめにしてグループ管理(おおざっぱに言うとサブルーチンの集まり的な)するようなものってイメージであってますか? 5、WindowのGUIアプリのプログラムの概要ですが各オブジェクト(ウインドウやボタン、マウスポインタ等)に対して「クリックされた」とかのアクションに対して動作するプログラムを書くって事でいいんでしょうか? 6、お勧めの参考書籍について 今までアセンブラをはじめPerlやJavaScript、C言語のお勧め入門書をいろんなサイトのレビューを見て買いましたが本よりネットの入門サイトのほうがかなり役にたってきました。それでも入門書を買うのは気持ち的に安心するからなんですが・・・ それを踏まえた上で僕の最終的な目的にあうような本があったら是非教えてください。 7、勉強の進め方や「合わせてこれも勉強しろ」っていう項目があれば教えてください。 現状としては 「C++の基礎(必要ですか?)」→「Win32API」→「DirectX」で行こうと思っています。

  • 今 主流のプログラミング言語について

     現在、COBOL言語での、システム開発を行っています。 しかし、仕事が減ってきていて、ほかの言語も勉強しようかと、 思っています。(COBOL言語しか分かりません)  そこで、今習うなら、どの言語が良いでしょうか?  アドバイスお願いします。

  • どのプログラミング言語を学習しようか迷っています

    こんにちは、プログラミング言語のことで質問させて頂きます。 私は情報学部の一年生です、この夏休みに堕落した生活を送るのも無駄なので、学校ではやらないプログラミング言語を少しでも学習し、何かを作って遊んでみようと考えています。 目的もどのような会社に就職したいかの希望も今のところは無く、何かを学習したいから、とりあえずどれかを学んでみようかという考えです。 ですがどの言語を学ぶべきかがわかりません、大学ではC言語を「明解C言語」の関数の範囲まで完了し、後期で残りをやる予定となっています。 また、二年次にJavaをやる予定です。 なのでJavaとC以外のどれかの言語を学ぼうと思っているのですが、C++やC#やCOBOLなど、種類も多く、どれも使い方が違い、どれを学ぶべきかで迷っています。 どの言語を学ぶにしても、C言語と混ざってC言語が使えなくなる、といったこともあるでしょうし・・・・どの言語を学ぶのがいいのでしょうか。

専門家に質問してみよう