おすすめ技術書籍 ~ ウィンドウズプログラミング

管理人の読んだ本書評

おすすめ本も、おすすめではない本もズバリ書いてます。 賛否両論あると思いますが、正直に思ったことを書きたいと思います。 あなたが本を選ぶ時に参考にしてください。

オススメ 上級の基本
教科書
オススメ
本当の実用的なデバッグとはこういうものです。
古い本になってしまいましたが、他にこれだけ詳しい本はないです。 特にセキュリティに関するプログラミングは今でも一番でしょう。

オススメ
インサイド Windows 本の原著です。この本にしか書いてないことが盛りだくさんなので、バイブル的に手元に置くしかないです。 MS の CPR の人でさえも Inside 本は読んでました。
懐かしいなぁ。そうそう、COM の勉強の最初はこれから始まりました。
Inside 本って、初心者向けじゃないと思われがちですが、ちゃんと詳しく書いてるのではじめての人にも意外と良かったりするんですよね。
でも・・・値段すごいことになってますね(汗) Book Off とかで見つけたら買っておきましょう~。
Inside COM よりはコードが断片的になりすぎてて、試すのは大変ですが、概念的には分かりやすく書いている部分が多い良書です。

この本はとても良い本です。内容的にもしっかり書けています。 残念ながら著者の方と面識はないのですが、日本語の書き下ろしの中で一番良いんじゃないか、と思ってます。
ただ、私がこのサイトの記事を書くに当たり、ちょうど内容がかぶりそうなので、あえて読まないようにしてます(笑)
.NET が出てきた頃に読みました。VC の COM サポートについて学ぶ時に役に立つと思います。

ここで紹介している書籍は、数々の書籍から厳選してご紹介しています。 書評に評価ポイント、技術レベル等をコメントしました。ご購入の際の参考にしてください。

猫でもわかるWindowsプログラミング 第3版 (NEKO series)(レベル: 初級)

人気 Web サイトの書籍版です。ただの Web の写しではなく、書籍用に整理され書き下ろされています。 書き方がやわらかくとても読みやすいです。

最も特徴的なのは、初級編の Windows プログラミングとしては珍しく、統合環境に頼らず C でしっかり書く方針が貫かれているところです。 最近の書籍はどれもこれも統合開発環境ありき、になっておりつまらないものが多い中で、これは素晴らしいと思います。

ちなみに、 Windows2000プログラミング標準講座 がお薦めなのもそういう理由です。初心者が統合環境に頼ると、とっつき易いのは良いことなのですが、統合環境の機能なのか Win32 の機能なのか判断できないままになってしまい、 理解が進まない恐れがあります。

書き方は平易です。とても読みやすく書かれています。説明を大雑把に端折ったりしているところは、著者の認識不足というよりは、読者が挫折しないよう配慮されている、と感じられます。

こういう読みやすい書籍で一度ざっと Windows プログラミングの概要を把握してから、私の Windows プログラミング入門 を読んでいただけると、 よりいっそう学習効果が高いように思います。

入門書では、本書がおすすめです。

Advanced Windows 第5版 上 (マイクロソフト公式解説書)
Advanced Windows 第5版 下 (マイクロソフト公式解説書) (レベル: 中級~上級)

ついに和書が出ました!

Windows プログラミングの絶対必要書籍の一冊です!

ほぼ全ての項目で他に類を見ない詳細な解説がされています。

この詳しさ・レベルで、出版されている書籍では間違いなく最高の解説書だと思います。

私は第四版も原著で読んでいます。第五版は Windows Via C/C++ にあたりますが、こちらももう読み始めています。

私の手元に日本語版がないので、Windows Via C/C++ をもとにして、目次を書くと次のようになります。

 第5版第四版
[タイトル]Windows via C/C++Programming Applications for Microsoft Windows
エラー処理XX
文字列処理 (Unicode)XX
カーネルオブジェクトXX
プロセスX (Vista の UAC に関わる節が追加)X
ジョブXX
スレッドの基礎 XX
スレッド・スケジューリング、優先度、アフィニティ XX
ユーザーモードでのスレッドの同期 X (スリム・リーダー・ライターロック、コンディション変数の節が追加)X
カーネルオブジェクトを用いたスレッドの同期X (ウェイト・チェーン・トラバーサル API を使ったデッドロックの検出の節が追加)X
同期・非同期デバイス I/O X 
ウィンドウズ スレッドプール X 
ファイバー (Fibers)XX
メモリ・アーキテクチャ X (データのアラインメントの節追加)X
仮想メモリ XX
アプリケーションで仮想メモリを使う XX
スレッドのスタックXX
メモリ・マップト・ファイルXX
ヒープ XX
DLL の基礎 XX
DLL の進んだテクニックXX
スレッド・ローカル・ストレージXX
DLL インジェクションと API フックXX
終了ハンドラXX
例外ハンドラとソフトウェア例外 XX
未処理例外、ベクター例外処理、C++ 例外 XX
ウィンドウメッセージ X
ハードウェア入力モデルとローカル入力状態 X
エラーレポートとアプリケーション・リカバリ X 

注意: この日本語訳は私が原著を見て書いてますので、実際に販売される書籍とは異なる可能性があります。 また相違点の対照については、第5版では全体的に 64 ビット Windows について言及しているなど、 節の違いだけでは表現できない変更点も多数あります。この表はひとつの目安と考えてください。 あらかじめご了承ください。

私も第四版に書いてあることを一つ一つ実際に手を動かしてコードを走らせて勉強しました。 はっきり理解でき、目からウロコが落ちました。

これらの項目はいわば、上級の基礎知識です。 これらをマスターして始めて、深遠な面白い世界が開けてきます。

Windows Via C/C++(レベル: 上級)

私の超お薦めの二冊 (Programming Applications for Windows と Programming Server-Side Applications) が一冊になった最強の解説書です! ただし完全に二冊あわさったわけでもなく、合体していいとこ取りになってます。

DLL、メモリの使い方、I/O、例外処理等の、Windows プログラミングのキモであり、基礎の部分が簡潔に正確に記述されています。 しかも、ほぼ全部自分で手で書いて動かせるようになっています。

とにかくお薦めなのですが、一箇所だけ残念なのは Security に関する箇所、例えば SSL プログラミングのようなこの書籍以外どこにも解説が無かったような項目が抜けています。 非常に貴重な情報だったのに、残念です。(そのようなレアな情報は当サイトにご期待ください!)

ちなみに洋書です。

上のレベルを目指す人は、洋書は避けて通れませんから、この際、英語の勉強も兼ねるつもりで読んでみてはどうでしょうか。 この書籍なら、時間を取る価値があります!

最近はこのレベルの書籍は和書が出にくい傾向があります。以前、出版社の方に「難しい本は全然売れない」という話を聞いたこともあります...

当サイトでは、私 小山圭介 が非常に重要だと思うものを、売れる売れないに関わらず、信念を持ってお薦めしています! 洋書だから良い本だけど紹介しない、ということはありません。

大変だったけど、これを読んで本当によかった。

そう思えるものを紹介しています。

繰り返します。

本気で Windows プログラミングを理解したい人はこの本を買って、頑張って読んでください

プログラミングWindows第5版〈上〉(レベル: 中級~上級)

Windows プログラミングのバイブルとして知られています。原書は1冊ですが和書は二冊に別れていて、 下巻は プログラミングWindows第5版〈下〉Win32 APIを扱う開発者のための決定版! (Microsoft Programming Series) です。

特に UI インターフェイス部分 (ウィンドウ、マウス、キーボード) が秀逸で、UI について本当に細部まで突き詰めたい人にお薦めです。 詳しすぎる感もあるので、 Windows2000プログラミング標準講座 くらいでも良いかと思わなくもありませんが・・・。ただ、こちらも残念ながら廃刊なのですね。 最近はこういう硬派な書籍は人気がないのでしょうか。

持っていたほうが良いことは間違いありませんが、正直だいぶ古い本で中古品も高いようなので、英語が大丈夫なら洋書のマーケットプレースを狙うとかして安く手に入れたらよいかもしれません。

私のように UI 以外の面 (DLL、スレッド、プロセス、カーネルオブジェクト、例外処理・・・)に興味がある人は、 Advanced Windows の方が良いかもしれません。UI については他の和書でもいいかもしれません。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Web/DB プログラミング徹底解説