• ベストアンサー

WinAPIを始めるにあたって

C言語を大分理解できて来たところで 最近、WinAPIのプログラムを組みはじめました。 幸い参考になる書籍など(猫でも分かる…)も多く、 サイトの助けなども借りながら進んではいるのですが、「ハンドル」とか「呼び出し規約」とか「16ビットの時代」とか「32ビットの時代」とか… 意味のわからない単語ばかりで四苦八苦しております。 何で分からないのかというと 私はWindowsOSについての知識、いや OS全般についての知識が非常に乏しいからなのです。 C言語の入門書を読み終える頃に気づいたのですが 実際にパソコンの上で動作する、実用的名プログラムを組もうと思ったらOSに関する知識は必要不可欠であるということに 今更ながら気づきました。 今まで、OSの勉強は自分にとって面倒くさいし、Cでプログラムを組む方が面白かったので、そっちばかりに気をとられてしまい、全く無知のままでいました。 そこで WindowsOSについて、学べる良書があれば紹介して欲しいです。 その他にもサイトなどでも構いません。 どうか、ご教授お願いします。

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

  • ベストアンサー
  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.2

★アドバイス >「猫でも分かる…」は確かに原理からは理解できません。  ↑  実際にメモ帳、電卓、時計、アラームなどを作って原理を理解していきます。  下にお勧めなお勉強サイトを多数紹介します。 (1)Win32 API のお勉強としては1番のお勧め。 http://wisdom.sakura.ne.jp/system/winapi/→『Win32 API入門』 第2版の書籍もお勧め。 http://www.amazon.co.jp/dp/4797325453/→『Windowsゲームプログラミング』 http://www.amazon.co.jp/dp/4797347597/→『Windowsゲームプログラミング 第2版』 (2)Win32 API のお勉強としては2番のお勧め。 現在、サイトの移動中のようです。 http://www.geocities.jp/ky_webid/index.html→『トップページ』 http://www.geocities.jp/ky_webid/win32c/index.html→『Win32API(C言語)編』 (3)Win32 API のチップス集(1) CPU使用率の取得方法などが書かれています。 http://zhshijie.hp.infoseek.co.jp/api_jp/→『周士傑のウェブページ』 http://nienie.com/~masapico/sample_index.html→『Win32 サンプル集』 http://nienie.com/~masapico/api_index.html→『API別 Win32 サンプル集』 (4)Win32 API のチップス集(2) こちらも色々と情報が詰っています。 http://homepage2.nifty.com/DSS/pt.htm→『Programming Tips』 (5)Win32 API のチップス集(3) こちらも色々とAPI情報が詰っています。 http://blog.goo.ne.jp/masaki_goo_2006/→『プログラミングのメモ帳』 (a)書籍の紹介 チップス集の本。 http://www.amazon.co.jp/dp/4797341920/→『Visual C++ 2005 実用サンプルプログラム WindowsプログラミングTips108』 (b)Win32 APIの技術的な書籍。 http://www.amazon.co.jp/dp/4756136001/→『プログラミングWindows第5版〈上〉Win32 APIを扱う開発者のための決定版!』 http://www.amazon.co.jp/dp/475613601X/→『プログラミングWindows第5版〈下〉Win32 APIを扱う開発者のための決定版!』 http://www.amazon.co.jp/dp/4894713713/→『Win32システムサービスプログラミング』 最後に ・最初は(1)の書籍を1冊だけ購入して後は(1)~(5)を参考にしていろいろと作成します。  どこかでコツをつかめば原理も理解していきます。 ・(a)(b)はより詳しいAPI情報です。  最初は不要です。  品切れを考えて購入するもの悪い気はしませんが…。  最初は不要です。

参考URL:
http://wisdom.sakura.ne.jp/system/winapi/
gachinco
質問者

お礼

ご回答ありがとうございます。 多数の書籍を紹介してもらったおかげで選択の幅が増えました! どうしても頭でっかちになってしまう私としては、「猫でもわかる…」だと「どうして??なぜ??」という質問が 常につきまとってしまい、中々進みませんです。 でも、第3章あたりまで進むと、メッセージ駆動型プログラミングの動作原理だけはなんとかつかめてきたつもりです。 「習うより慣れる」って本当ですよね。 アドバイス通り とりあえずは「猫でもわかる…」を最後まで進めてみようと思います。 書籍代も、もったいないですし。 サイトは私も参考にしているサイトが載っていて、 まあまあ信用のおけるサイトなんだという事が再確認できて良かったです。 ************************************************************* ************************************************************* これにて質問は締め切らせて頂きます。 今回の回答はどれも非常に参考になった気がしますので 甲乙付け難いですが、とりあえず点数つけます。 どっちが良いとかじゃなくて、どっちも良かったという意味で点数つけさせて頂きます。 回答して下さった方々に心から感謝いたします。

その他の回答 (1)

noname#208124
noname#208124
回答No.1

「Advanced Windows」 第4版はWindowsでC/C++をやっていくなら必読書とまで言われていました 去年第5版が出ました 訳版は上下に分かれて高くなっているので英語が出来るなら原書「Windows VIA C/C++ , Fifth Edition」がいいですが 「プログラミング Windows」 大分前の本ですが基本は今になっても変わりません 「インサイド Microsoft Windows」原書「Windows Internals」 Windows内部、に限定すればお薦めの本です が、 ・今年5月に第5版が出る予定 ・ユーザーモードアプリケーションに役に立つプログラミングTIPSは少ない ・訳がひどい 「Windowsプログラミングの極意」 MSの中の人のブログ「The Old New Thing」を書籍訳したものでWindowsの歴史的事情の説明なので題名だけ見て買うと間違います MSDNライブラリ 実際にAPIでプログラミング始めたら検索で出たサイトだけじゃなくAPIの仕様はかならず見るようにしましょう 英語が出来なくても英語版もちゃんと見ましょう http://msdn.microsoft.com/ja-jp/library/default.aspx 猫でもわかる は微妙かな 動くものは作れるようになるだろうけどスタックとか呼び出し規約とかは何も理解できないでしょう ネットで見れる方はcharとTCHARの区別が出来てなかったり64ビットでは間違いなく動かないコードがあったりするのでお薦めできません

gachinco
質問者

お礼

ありがとうございます。 丁寧な回答に大変感謝しております。 「猫でも分かる…」は確かに原理からは理解できません。 早速、書店へ足を運んでみたいと思います。

関連するQ&A

  • C言語でpingを実行してその結果をもらうプログラム

    丸投げのようで大変恐縮なのですが、タイトルの通り のことをC言語プログラムで組みたいのですが、 どこかに(ネット上)サンプルプログラム等 はありませんでしょうか? いきなりのC言語開発案件で四苦八苦しております。

  • アセンブラからCの関数を呼び出すには?

    「OS自作入門」を読んで試しています。 フロッピーのブートセクタに自作のブートプログラムを 書き込み、ブートプログラムから自作のOSを呼び出して実行 しています。自作といっても前述の参考書の物まねですが・・・・。 ここまでは全てアセンブラでプログラムを書いてきました。 NASMを使っています。ずっとアセンブラではきついので C言語で書きたいのです。 まずは自作のOSからCで書いた関数を呼び出して実行したいの です。つまり・・・ OS.ASM + TEST.C→OS.BIN としたいのです。OS.ASMは自作のOSです。TEST.CにはCの関数を 書いておき、OS.ASMから呼び出すようにします。 これらをくっつけてOS.BINというファイルにしたいのです。 どうすればいいでしょうか?  (1) ブートプログラムの中で16ビットモードから32ビットモードに 切り替えており、自分でセグメントを決めてあります。TEST.Cも それにあわせる必要があるかと思いますが、どうすれば? (2) OS.ASMとTEST.Cをどうやってくっつけるのかがわからない。 リンカーとか使うのでしょうか?

  • c#でGUIプログラム

    今度仕事でC#を使用して主にGUI部分のプログラムを作成することになったのですが、C#やwindowsプログラムは初めてで四苦八苦してますが特にGUIの部分で苦労してます。 外観・見た目・使いやすさ等さまざまあり困ってます。(特に見た目等)この辺について役に立つ書籍やサイトがあれば教えてください。

  • ゲームコントローラからの入力を画面に表示したい

     VistaマシンでPSのゲームコントローラをコンバータでつないでネットゲームやってます。ゲームコントローラからの入力(どのボタンが押されたとか)をゲーム中の画面上に重ねて表示するプログラムを書きたいと思っています。どういう知識が必要になるのか教えてください。  ちなみにWindowsOSの知識ほぼ皆無です。C#でちょっとしたものを書いたことがある程度です。CやC++は言語としては一応知ってますが、Windows環境でプログラムを書いたことはありません。  よろしくお願いします。

  • C言語の勉強法

    C言語の勉強法で実用的なプログラムのソースが載っているサイトもしくは書籍はご存じないでしょうか? 種類はゲームやアプリケーションなどなんでもよく、作っておくとためになるようなものなら問いません。 自分のCプログラムのレベルは、C言語の入門書を終了し、じゃんけんプログラムや数当てゲームなどの簡単なプログラムを組めるようになった程度です。 それよりも、少し難しいプログラムを紹介してくださると大変ありがたいです。(厚かましいかもしれませんが…)

  • visual studioに必要な知識

    現在フリーのエディタとbccでプログラミングを行っているのですが、 近いうちにVisual Studio.NET2005を使った開発へと進みたいです。 そこで質問なのですが、Visual C++を使いたいのですが何の知識があれば適した使用ができるのでしょうか? 目標はゲームなどのwindowsプログラムを作ることで、 自分の現在の知識はC言語の本を各種読んだ後、 赤坂 玲音さんの『Windowsゲームプログラミング』を読みWINAPIについて学んだところです。 現在WINAPIでGUIプログラムを作る時には完全にC言語しか使っていないのですが Visual C++というくらいだからC++の知識は必要なのでしょうか? 本屋さんでVisual C++の本を立ち読みしてみた所、 例えば今まではメッセージボックスを MessageBox(NULL,MOJI,TITLE,MB_OK);みたいに書いてたのが、 MessageBox::Show(MOJI);としてあるようだったり、 今までは基本的にWM_~メッセージを拾って処理を書いていたけど void button1_Click(・・・){MessageBox(・・・);} と書いてあったりして今の知識だと訳が分からないといった感じです・・・。 ひょっとしてVisual Studioを使う場合は今までの知識は関係ないのかと焦り質問させて頂きました。 どなたか宜しくお願いします。

  • OpenGLでの楕円の描き方

    初めて質問させていただきます。 現在OpenGLを勉強中のOpenGL初心者です。 今OpenGLでの楕円の描き方で四苦八苦しております。 どなたか楕円描写のプログラミングを教えていただけませんか? 言語はVisual C++7.0です。

  • サーバプログラム

    C言語の初心者です。 OS : CentOS 5.3 c言語でサーバ用のプログラムを書きました。 ソケット通信で接続してきたクライアントにデータをそのまま返すと言うものです。 コンパイルしたソースが、 gcc -Wall -o example example.c だとすると、この exampleソースを サービスとして( 「デーモンとして」と言うのか? )、起動したい場合、 どのように起動すればよいのでしょうか? ./example と叩くだけだと、叩いた間だけしかプログラムは動いてくれませんよねぇ。 また、サーバプログラムの良書を教えていただけたら幸いです。 初歩的な事でしたら申し訳ないですが、 よろしくお願いします。

  • Cの書籍について

    Cの書籍について わたしは、前回の質問で C⇒Java⇒C++の順に入ることにして C言語を勉強することからはじめているのですが 前回の回答で柴田望洋さんの書籍”明解C言語 入門編”をかって 自分でプログラムを書きながら最後まで理解しながら読ませていただいたのですが 次のステップへ進もうと思うのですが、やはり書籍を買うほうがいいのでしょうか その前に、入門編にはCの基本的な知識が書いてありましたが、次のステップは どのようなことを学ぶこととなるんでしょうか?

  • objectiv-Cを学ぶにはC++を先に学ぶ必要があるか?

    objectiv-Cを学ぶにはC++を先に学ぶ必要があるか? 最終的にobjective-cでiphone用のプログラムを作成したいと思っております。 調べているとobjective-cが必要であるが分かりました。 C++と似ていて否なるものというような表現が多いのですがC++を学んだあとに取り掛かるのが良いですか?それとも最初からobjective-cを学んだほうがよいですか? 要するにobjective-CはC++の上に成り立っているのか、Cから派生した、C++と同列の別言語なのか? というあたりが知りたいところです。 当方のプログラミング言語の知識は BASIC、FORTRANは使ったことがあります。 C言語は入門書「C言語入門 THE C Primer アスキー出版局」を読んだだけで、使ったことはありません。 よろしくお願いします。

専門家に質問してみよう