如何替换WSAStartup(MAKEWORD(2,2),和数据);与助推器:ASIO?
how to replace WSAStartup( MAKEWORD(2, 2), &data ); with boost:asio?
我有本机dll项目,我通过CLI包装器从c#使用。在dll的Initialize
方法中,我调用
WSAStartup(MAKEWORD(2, 2), &data);
这很好。现在我决定把整个dll移到boost::asio(因为我要把它移植到Linux上,我想启用/Za编译器选项)。
问题是-我应该在哪里以及如何取代WSAStartup
呼叫?
- 将其移动到CLI包装器或顶级c#项目?
- 用一些boost::asio调用(调用哪个方法?)
Boost.Asio
在main()
之前初始化Winsock
-它为此目的使用静态对象。以下是winsock_init.hpp
的节选:
// Static variable to ensure that winsock is initialised before main, and
// therefore before any other threads can get started.
static const winsock_init<>& winsock_init_instance = winsock_init<>(false);
所以,在你的例子中,Winsock
将在dll加载时被初始化。
(也就是说,恐怕你不能用/Za
在Windows下编译Asio
,但你也不必这样做,以使你的代码可移植到Linux。)
相关文章:
- 理解boost::asio-async_read在无需读取内容时的行为
- 提升 ASIO 无法识别计时器对象
- C++Boost Asio Pool线程,带有lambda函数和传递引用变量
- boost::asio::steady_timer()与sleep()我应该使用哪一个
- boost::asio如何生成多个协同程序,然后加入它们
- 缓慢提升ASIO
- 从 Boost ASIO 获取 epoll 描述符 io_service对象
- 如何在 Boost.Asio 中使用 Zero-copy sendmsg/receive
- C++ Boost::asio串行通信与Arduino无法写入
- 如何使用 Boost Asio 在 Android 上获取我的本地 udp IP 地址?
- 提升 Asio TCP 服务器 处理多个客户端
- boost::asio UDP 广播客户端仅接收"fast"数据包
- 提升 ASIO - io_service 不要等待连接到线程
- 执行时使用 boost::asio::d eadline_timer 时出错
- Boost.Asio/OpenSSL HTTPS GET certificate trouble
- C++ boost::asio::ip::tcp::acceptor 有时不接受连接器?
- boost::asio data owning `ConstBufferSequence`
- 等待助推器asio的未来在io_service.stop()之后永远持续下去
- 助推器::ASIO 错误?task_io_service在销毁io_service之前
- 如何替换WSAStartup(MAKEWORD(2,2),和数据);与助推器:ASIO?