如何在Visual Studio 2017中(在Windows 10上)为Windows XP构建.dll文件的标准标头中修复错误

时间:2019-02-17 18:01:31

标签: visual-studio

我正在处理.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

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实际上会导致更多错误)。为什么我也这样尝试。 非常感谢您的帮助!

1 个答案:

答案 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。