【发布时间】:2016-06-04 05:33:13
【问题描述】:
我正在使用 Boost::Asio 进行网络通信。以下代码失败并出现以下编译错误。
代码:
std::wstring hostName(L"myserver");
std::wstring portName(L"myport");
auto query = boost::asio::ip::udp::resolver::query(boost::asio::ip::udp::v4(), hostName, portName);
编译错误:
Error 1 error C2665: 'boost::asio::ip::basic_resolver_query<InternetProtocol>::basic_resolver_query' :
none of the 5 overloads could convert all the argument types
我的问题:
- Boost::Asio 是否只需要 ANSI 字符串 (std::string)?
- 这是否意味着不支持具有非 ANSI 字符的主机名?
- 还是我必须先将宽字符串转换为 UTF8?
- 在后一种情况下,Boost::Asio 是否提供标准方法来执行此操作,或者我可以使用自己的 ANSI/Unicode 转换例程吗?
目前在 Windows 上运行,使用 Visual Studio 2013。
提前致谢。
【问题讨论】:
标签: c++ visual-studio-2013 unicode boost-asio wstring