作成: 99.3.24
更新: 99.4.01

Win32/C++ マルチスレッドプログラミング詳説
サンプルプログラム・ダウンロードページ

英語版の第二刷

英語版の第二刷ソースコードです。
ファイルサイズ
rev02noruntimes.zip 1,255,343
これ以外のzipファイルに含まれるソースファイル中のコメントは 日本語化されています。

必要最小限のファイルだけを含むアーカイブ

コメントおよび一部不具合修正を行った日本語版です。 EXE, DLLおよびプロジェクトファイルなどは含まれません。 5.0以降のVisual C++でビルドするには*.makファイルを プロジェクトとしてオープンしてください。その場合には、 Visual C++ 4.2との差異のため、コンパイルオプションを 調整しないと警告の出るサンプルがいくつかあります。 調整の手間を省くには、vc5あるいはvc6向けの適切なプロジェク トファイルを含む以下のzipファイルをダウンロードしてください。
ファイルサイズ
leanmean.zip 321,011

Visual C++ 5.0 用

プロジェクトファイルに加え、Visual C++ 5.0用のEXE/DLLが 必要な方はvc5wbin.zipをご使用ください。ソース コードも全て含まれていますので、別途leanmean.zipを ダウンロードする必要はありません。EXE/DLLなどのバイナリ ファイルを作り直す方には、vc5.zip のダウンロードをお勧めします。
ファイルサイズ
vc5wbin.zip 1,429,508
vc5.zip 667,167

Visual C++ 6.0 用

以下はVisual C++ 6.0向けのプロジェクトファイルを含んだ、ソース ファイルのアーカイブです。EXE/DLLなどの実行ファイルは含まれません ので、プログラムを動作させるには、ビルドを行う必要があります。
ファイルサイズ
vc6.zip 669,696

Visual C++でコンパイルしたプログラムに必要なDLLが、ご使用中の システムに存在しない場合は、次のファイルをダウンロードして、 \WINNT\SYSTEM32に(Win9xの場合には、\WINDOWS\SYSTEMに)コピーして 下さい。既に存在するファイルは、上書きしないほうが無難です。
ファイルサイズ
jruntimes.zip 635,681

英語版になりますが、デバッグ版のDLLを含んだファイルを、下記の著者の ホームページよりダウンロードできます。インストールに際しては、既に 存在するDLLを上書きしないように気をつけてください。このDLLはマルチバイト キャラクタをサポートしていません。日本語のアプリケーションの動作がおかしく なる可能性があります。デバッグ版のEXE/DLLを実行したい場合 以外には、インストールの必要はありません。
ファイルサイズ
Runtimes.zip 1,070,545

Windows 98 での動作について

countapp、countapp2 … リリース版とデバッグ版とを混在させて実行した場合に、 プログラム起動後、あるVxD内でGPFを起こす現象が見かけられました。 Windows98の終了時にも同様のエラーが報告されました。VC++5.0の導入後、再現して いませんし、Windows98でNIC/Displayハードウェアが正しく認識されていない監訳者 のマシンおよびOS環境の問題かもしれませんが、用心のため、リリース版とデバッグ版 を同時に実行しないことをお勧めします。

Sieveにおける標準出力ストリームの使用

本書のサンプルプログラムでは、C++のストリームI/Oの使用を極力避けていますが、 第8章のSieveアプリケーションでは、標準出力ストリームであるcoutが使用されて います。そのため、Sieve.exeの実行には、MSVCIRT.DLLあるいはMSVCIRTD.DLLが必要に なっています。このDLLは、上記Runtimes.zipにも含まれていませんので、 デバッグ版のSieve.exeを実行するには、Visual C++をインストールするか、 このSieve.exe (106,554バイト) を使用してください。zipしたもの(6,016バイト)は こちら 。 この実行可能ファイルはMSVCIRTD.DLLに依存しません。 そのソースコードであるストリームI/Oを使用しないように変更したSieve.cppは これ です。

ビルドの順序

ビルドは以下の順で行ってください。