c++ - 包括 boost/asio.hpp 抛出错误

标签 c++ visual-studio boost boost-asio

当我在头文件中使用#include 时,我的程序将不再编译,并给出以下错误:'boost::asio::basic_socket<Protocol,StreamSocketService>::cancel': By default, this function always fails with operation_not_supported when used on Windows XP, Windows Server 2003, or earlier. Consult documentation for details.

我也在这个项目中使用了 websocketpp,如果它是相关的 - 但是只有当我在我的标题中明确包含时才会发生错误。

我正在使用 Windows 10、Visual Studio 14。

我不知道为什么会出现此错误。我根本不需要使用该库,只需包含它即可。

最佳答案

如果您查看头文件,它会检查 _WIN32_WINNT 是否至少为 0x0600。引用this msdn page ,您可以决定指定哪个版本,例如0x0600 适用于 Windows Vista 及更高版本。在 include 语句之前指定这一行:

#define _WIN32_WINNT 0x0600

关于c++ - 包括 boost/asio.hpp 抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38255394/

相关文章:

c++ - VSCode 终端 ctrl-click in out of source build 找不到文件

c++ - 如何将方法作为参数传递给其他方法?

c++ - 如果变量未初始化,Visual Studio 2017 不会生成任何警告?

.net - Visual Studio 2005 - 同时重构多个属性?

c# - 在 C# 类中转到实现会导致反编译的类,而不是 Visual Studio 2022 中的原始类文件

c++ - 如何动态设置 boost 多数组的维度

c++ - 枚举类的 GoogleTest 测试错误打印

c++ - 如何在 Xcode 中链接动态库?

c++ - boost 无锁使用用户定义类型

c++ - 唤醒 asio 截止时间计时器