我正在处理.dll-文件,该文件将用于应该在Windows XP上运行的程序。我正在Windows 10机器上使用VisualStudio 2017进行此操作,我想构建该项目,其中包括.dll-文件的所有必需代码,从而定位Windows XP(64位)。
为Windows 10构建项目没有问题,我将在下面显示为该项目选择的设置。 尝试以XP(64位)为目标进行构建时,出现以下错误(以下图片不久):
错误C1083无法打开包含文件:'processthreadsapi.h':没有此类文件或目录
错误(活动)E1696无法打开源文件“ ip2string.h” 错误(活动)E1696无法打开源文件“ processthreadsapi.h”
这是我在两种情况下都更改的配置:
Windows 10 setup, build works fine
Windows XP setup, producing the error messages
我已经读过
---> https://docs.microsoft.com/en-us/cpp/build/configuring-programs-for-windows-xp?view=vs-2017
并安装了看似需要的c ++运行时支持,但仍然无法正常工作。我知道选择Visual Studio 2015工具集。我多次读到缺乏对2017版本的支持,并且人们通过选择2015选项来修复错误(选择2017 xp实际上会导致更多错误)。为什么我也这样尝试。 非常感谢您的帮助!
答案 0 :(得分:0)
当您选择XP工具集时,Visual Studio将使用不同的包含路径来包含Windows SDK的较早XP兼容版本中的文件。
如果您查看ip2string.h中定义的功能,则支持的最低版本是Windows7。我可以想象processthreadapi.h是重构Windows.h的尝试,因此在XP SDK中不可用。
如果您查看processthreadapi.h,您会发现它几乎受到保护
#pragma region Application Family or OneCore Family
我看不出代码确切地解决了问题,但是我建议您尝试在所有地方使用Windows.h而不是特定的API。