【发布时间】:2021-01-15 00:46:39
【问题描述】:
我在 Visual Studio 2019 中有一个使用 cpprestsdk 的 dll 项目(以及用于测试目的的控制台应用程序)。 在 windows 7 和 windows 10 上,原始包按预期工作,但是我很难在 windows XP 上编译和运行。
cpprestsdk 通过 NuGet 包含在项目中,版本:cpprestsdk.v141 但是,它对编译器不可见。 #include <cpprest/http_client.h> 行抛出错误。
我所做的更改:
- 平台工具集设置为
Visual Studio 2017 - Windows XP (v141_xp) - 预处理器定义更新为包括
CPPREST_TARGET_XP - 静态包含
cpprest141_2_10.dll - 静态链接
cpprest141_2_10.lib - 控制台应用程序设置
ConformanceMode设置为false
现在该应用正在编译,但在 Windows 10 上无法正常运行(发送请求时崩溃)。并且它没有在 Windows XP 上启动(找不到 dll 入口点)
Any1 知道发生了什么事吗?
@编辑: 添加到程序文件夹后缺少 dll:
api-ms-win-core-crt-l1-1-0.dllapi-ms-win-core-crt-l2-1-0.dllhttpapi.dll
来到ntdll.dll
Entry Point Not Found error screenshot
The procedure entry point WinSqmAddToStreamEx could not be located in the dynamic link library ntdll.dll
【问题讨论】:
-
欢迎来到 Stack Overflow!您确定这些 DLL 本身是为 XP 构建的吗?也许该平台和工具集有不同的 DLL?您可以自己构建 DLL 以确保所有内容都匹配吗?
-
@Michał Mach - 如果您将错误的详细描述添加到帖子中,它可以帮助您更清楚地理解图片。
-
第一个 XP 不再受 MS 支持。还应该为 XP 构建 pkg 吗?
-
是的,我知道,但它适用于 XP POS Embedded(EOL 2019)的 dll。可悲的是,没有办法,它必须适用于 XP。 cpprestsdk 包应该为 XP 构建,我尝试从 v2.9.1 标记 github.com/microsoft/cpprestsdk/tree/v2.9.1/Release/src/build/… 构建但仍然没有运气(XP 仍然对缺少 dll / dll 中缺少入口点大喊大叫)
标签: windows visual-studio dll windows-xp cpprest-sdk