もともとの「Visual C++ 2005 Express Edition と Microsoft Platform SDK を一緒に使う」では以下のようになっている。
Windows Server 2003 SP1 Platform SDK をインストールしてから、
-
オプション -> プロジェクトおよびソリューション -> VC++ ディレクトリ
- 実行可能ファイル C:\Program Files\Microsoft Platform SDK\Bin
- インクルードファイル C:\Program Files\Microsoft Platform SDK\Include
- ライブラリファイル C:\Program Files\Microsoft Platform SDK\Lib
-
C:\Program Files\Microsoft Visual Studio 8\VC\VCProjectDefaults\corewin_express.vsprops
AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib"
-
C:\Program Files\Microsoft Visual Studio 8\VC\VCWizards\AppWiz\Generic\Application\html\1041\AppSettings.htm
- WIN_APP.disabled WIN_APP_LABEL.disabled DLL_APP.disabled DLL_APP_LABEL.disabled をコメントアウト
しかし、必要になったのでVisual C++ 2005EEでlibzmqをビルドしようとしたところ、InitializeConditionVariableを呼び出そうとしてエラーが出てしまった。今回はVisual C++ 2010EE+Win64のために「Microsoft Windows SDK for Windows 7 and .NET Framework 4」をインストールしてあったので、
- 実行可能ファイル C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin
- インクルードファイル C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include
- ライブラリファイル C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib
としたところビルドできた。どうもlibzmqは処理系ではなく実行しているWindowsのバージョンで呼び出しを変えるらしく。古いVisual C++で検証を行う必要がある場合、新しいSDKを読み込ませるのは有用になることもあるかもしれない。
また、stdint.hのC:\Program Files\Microsoft Visual Studio 8\VC\includeへの追加も必要だった。
https://www.vector.co.jp/soft/win95/prog/se432866.html