2台のマシンがあります。1台はVistaUltimate32を実行し、もう1台はXPSP3を実行しています。両方のマシンに同じVS2008バージョンがインストールされています。
私は最初のマシン(vista)でブースト1.50.0を構築し、その後、ブーストに依存するlibtorrentライブラリを構築しました。
いくつかのlibtorrentビルド命令で、winバージョンがプリプロセッサ内で指定されていることを確認したので、現時点で意味があると思われることを実行しました。
#define _WIN32_WINNT=0x0600 // being that the current OS is Vista
ビルドは正常に完了し、そのマシンでアプリケーションを実行できました。ただし、もう一方(XP)で実行しようとすると、次のようなメッセージが表示されて失敗しました。
プロシージャエントリポイントSetFileInformationByHandleがダイナミックリンクライブラリKERNEL32.dllに見つかりませんでした
さて、論理的には、これは互換性のないバージョンと関係があると推測しています。この変数が異なる値で存在する場合、おそらく異なるWindowsヘッダーが含まれます。
要件:これをVistaまたは7で構築し、それでもXPで実行できるようにしたい。
質問:このディレクティブは必要ですか?必要な場合、値はどうなりますか?何かが足りない場合、他に何を指定する必要がありますか?