如何解决Windows XP上具有cpprestsdk编译的dll库
我在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入口点)
任何人都知道发生了什么事吗?
@edit: 添加到程序文件夹中缺少的dll后:
-
api-ms-win-core-crt-l1-1-0.dll
-
api-ms-win-core-crt-l2-1-0.dll
-
httpapi.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
解决方法
您需要做的就是将您的 Visual Studio 降级到 2013 并下载 cpprest SDK 的版本,例如 2.9.1,它也支持 VS 2013 (msvc 120),希望对您有帮助
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。