本書の記載内容について訂正があります。
こちらを参照してください。
本書は『Win64 APIシステムプログラミング』と『Win32 APIシステムプログラミング with Visual C++ 2008』をコンパクト化した書籍です。
一連のAPI書籍は、2000年3月に発売された『Windows 2000時代のWin32 APIシステムプログラミング with Visual C++ 6.0』を起源とし、改訂や増補を重ね現在の『Win64 APIシステムプログラミング』と『Win32 APIシステムプログラミング with Visual C++ 2008』へ至っています。内容は充実しましたが、皮肉なことに増補を重ねたため、それが書籍を厚くし、かつ価格も安いものではなくなってしまいました。
本書は、このように肥大化し価格と共に複雑になった書籍を、システムプログラミング入門者に分かりやすくするため、前記の書籍をコンパクト化したものです。初期に企画した、基本的なシステムプログラミングのみに特化した書籍の要望が強かったため企画しました。
対象読者
プログラミングを一通りマスターし、次のステップであるAPIを使用したい人
スレッドやプロセスなどを効率的に組み合わせ、システムプログラムに挑戦したい人
32ビットと64ビットプログラミングの違いを理解したい人
本文の内容に誤りがありました。 お詫びして訂正いたします。
p.67、下から5行目
誤
wsprintf(testMsg," 右マウスクリックの回数=%d",count);
正
wsprintf(testMsg," 左マウスクリックの回数=%d",count);
p.74、下から5行目
誤
while( GetMessage( &msg, NULL, 0, 0 ) != 0 )
正
while( GetMessage( &msg, NULL, 0, 0 ) > 0 )
p.114、図4.5先頭ブロック
誤
BITMAPINFOHEADER
正
BITMAPFILEHEADER
p.144、13行目
誤
ます。そこで、extern "C" 構文により、C++ の名前装飾を取りやめる方法を採用します。extern "C" 構文は、C++ から他の言語への呼び出しを整合させたり、他の言語から呼び出されるC++ プロシージャの名前付け規約を変えたりするために使います。ただし、extern "C" は、C++ でしか使えません。C++ コードがextern "C" を使っていない場合は、名前の装飾を調べ、・・・
正
ます。そこで、extern "C" 構文により、C++ の名前装飾を取りやめる方法を採用します。extern "C" 構文は、C++ から他の言語への呼び出しを整合させるために使います。ただし、extern "C"は、C++ でしか使えません。C++ で開発したDLLを使用する場合、名前の装飾を調べ、・・・
説明
Win64(x64)ではextern "C"でも問題ないが、Win32ではDLL関数名は「_」と「@」で装飾される。C++やC言語 以外からDLL関数を呼び出す場合、基本的にDEFファイルを使ってください。ただ、C#などからはextern "C" で宣言した関数を呼び出せます。P149のdumpbinの例はx64のDLLです。p.310、最終行
誤
data_seg の詳細については第5 章を参照してください。また、同じ目的でDEF ファイルも使用します。
正
また、同じ目的でDEF ファイルも使用します。