我有两台机器,一台运行 Vista Ultimate 32,另一台运行 XP SP3。两台机器都安装了相同的VS2008版本。
我在第一台机器(vista)上构建了 boost 1.50.0,然后是依赖于 boost 的 libtorrent 库。
我在一些 libtorrent 构建指令中看到 win 版本是在预处理器中指定的,所以我做了目前似乎有意义的事情:
#define _WIN32_WINNT=0x0600 // being that the current OS is Vista
构建成功,我能够在那台机器上运行应用程序。但是,当我尝试在另一个(XP)上运行它时,它失败并显示消息,例如:
无法在动态链接库 KERNEL32.dll 中找到过程入口点 SetFileInformationByHandle
现在,从逻辑上讲,我猜这与不兼容的版本有关,并且当这个变量以不同的值存在时,可能包含不同的 Windows 标头。
要求:我想在 Vista 或 7 上构建它,并且仍然能够在 XP 上运行它。
问题:我是否需要这个指令,如果需要,值应该是多少?如果我遗漏了什么,我还应该指定什么?