64ビット徹底活用
Win64 APIシステムプログラミング
- 著者 北山 洋幸
- 判型 B5変型, 752頁
- 本体価格 8,000円
- ISBN 978-4-87783-234-6
本書の記載内容について訂正があります。
こちらを参照してください。
本書について
ついにWindowsでも、本格的に32ビットシステムから64ビットシステムへの変革がはじまりました。
64ビット化によって何が変わるのでしょうか。狭義的には、使えるメモリが大幅に増えるということに尽きます。64ビット化して、すぐに効果を実感できるのは、搭載メモリを有効に使えるようになることです。
これまでにも、扱える情報量や処理速度が増大することによって、コンピューターの利用形態は変化してきました。かつて、MS-DOSの640KBの中でアプリケーションソフトウェアを実現していた時代や、Windows 95の出現時にアナログの回線を使ってPPPでインターネットを使っていた時代に、どれだけの人が現在のようにインターネットで動画を鑑賞することを想像できたでしょうか。それに匹敵する変革が、今後64ビットシステムによってもたらされるでしょう。
これまでには考えられなかったアプリケーションソフトウェアや利用法の出現を期待しつつ、本書が、読者の方々の64ビットプログラミングを始めるよいきっかけとなることを望みます。
本書の対象読者は次の方々です。
・32ビットプログラミングから、64ビットプログラミングに移行したいプログラマ。
・Windowsプログラミングを一通りマスターし、次のステップであるシステムプログラミングに移行したいプログラマ。
・スレッドやプロセスなどを効率的に組み合わせ、パフォーマンスプログラムに挑戦したいプログラマ。
目 次
- 第1章 概 論
- 1-1 Windows API概論
- 1-2 メモリ空間
- 1-3 データモデルとAPI
- 1-4 ポインタ使用規則
- 1-5 インクルードファイル、マクロ、ヘルパ関数
- 1-6 32ビットプログラムと64ビットプログラムの互換性と移行
- 1-7 64ビットプログラムと32ビットプログラムの相互運用
- 1-8 VC++による64ビットプログラミング
- 第2章 メモリ概論
- 2-1 メモリ状態の表示
- 2-2 大きなメモリの確保
- 2-3 4Gバイトを超える空間にメモリ確保
- 2-4 大きなメモリの操作
- 2-5 大きな文字列の操作
- 第3章 メッセージ概論
- 3-1 メッセージの基礎
- 3-2 メッセージの送信
- 3-3 タイマーメッセージ
- 3-4 メッセージによるマウスイベント発生
- 3-5 モーダルダイアログボックスのメッセージ
- 3-6 モードレスダイアログボックスのメッセージ
- 第4章 ウィンドウ概論
- 4-1 ウィンドウの各サイズ取得
- 4-2 コンソールからのウィンドウ表示
- 4-3 ウィンドウの移動
- 4-4 ウィンドウ表示を透過
- 4-5 イベントが透過
- 4-6 ウィンドウの変形
- 4-7 ウィンドウの変形(2)
- 第5章 DLL
- 5-1 単純なDLLの開発
- 5-2 エクスポート名にこだわらないDLL
- 5-3 DEFファイルを使ったエクスポート
- 5-4 _cdeclでも呼べる
- 5-5 変数のエクスポート
- 5-6 ダイナミックロード
- 5-7 DllMainについて
- 5-8 DLLでメモリを共有
- 第6章 スレッド
- 6-1 簡単なスレッドプログラム
- 6-2 たくさんのスレッド
- 6-3 スレッドの実用例
- 6-4 スレッドの実用例(2)
- 6-5 ランタイムライブラリでスレッド
- 6-6 スレッドの中断と再開
- 6-7 スレッドの強制終了
- 6-8 スレッド間でメッセージ通信
- 6-9 スレッドのプライオリティ
- 6-10 スレッドを使った画像処理
- 6-11 スレッドを多数使った画像処理
- 6-12 スレッドを多数使った画像処理・メニュー制御
- 6-13 スレッドとクラスを使ったラプラシアンフィルタ
- 第7章 同 期
- 7-1 クリティカルセクションで同期
- 7-2 ミューテックスで同期
- 7-3 インターロックAPIで同期
- 7-4 セマフォで同期
- 7-5 イベントで同期
- 7-6 クリティカルセクションで同期して画像処理
- 7-7 クリティカルセクションで同期して画像処理(ランダム)
- 7-8 ミューテックスで同期して画像処理
- 7-9 セマフォで同期して画像処理
- 第8章 プロセス
- 8-1 コンソールからプロセス起動
- 8-2 コンソールからのプロセス起動(2)
- 8-3 ミューテックスを使ったインスタンス制御(1)
- 8-4 ミューテックスを使ったインスタンス制御(2)
- 8-5 セクションを使ったインスタンス間通信
- 8-6 DLLのセクションを使ったプロセス間通信
- 8-7 メールスロット(1)
- 8-8 メールスロット(2)
- 8-9 名前付きパイプ(1)
- 8-10 名前付きパイプ(2)
- 第9章 メモリマップドファイル
- 9-1 ファイルに含まれる特定の文字をカウント
- 9-2 ポインタを利用して内容を変更
- 9-3 ポインタを利用して文字列置換
- 9-4 プロセス間でメモリを共有
- 9-5 メモリマップドファイルを使ったプロセス間通信
- 9-6 メモリマップドファイルを使った画像処理
- 第10章 ネットワーク
- 10-1 ローカルIPアドレスを表示
- 10-2 リモートIPアドレス表示
- 10-3 html表示(ソケット編)
- 10-4 html表示(wininet編)
- 10-5 html書き込み(wininet編)
- 10-6 TCPプロトコルで通信
- 10-7 UDPプロトコルで通信
- 10-8 スレッドを使った通信
■正誤表■
本文の内容に誤りがありました。 お詫びして訂正いたします。
p.88、9行目
誤
wsprintf(testMsg," 右マウスクリックの回数=%d",count);
正
wsprintf(testMsg," 左マウスクリックの回数=%d",count);
p.96、下から5行目
誤
while( GetMessage( &msg, NULL, 0, 0 ) != 0 )
正
while( GetMessage( &msg, NULL, 0, 0 ) > 0 )
p.152、図4.5先頭ブロック
誤
BITMAPINFOHEADER
正
BITMAPFILEHEADER