首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用boost:asio代替WSAStartup( MAKEWORD(2,2) &data )?

如何用boost:asio代替WSAStartup( MAKEWORD(2,2) &data )?
EN

Stack Overflow用户
提问于 2013-04-28 08:02:47
回答 1查看 1.3K关注 0票数 2

我有本机dll项目,我通过C#通过CLI包装器使用它。在动态链接库的Initialize方法中调用

代码语言:javascript
复制
WSAStartup(MAKEWORD(2, 2), &data);

这个很好用。现在,我决定将整个dll移动到boost::asio (因为我将将其移植到Linux,并希望启用/Za编译器选项)。

问题是-我应该在哪里以及如何替换WSAStartup调用?

  • 将其移动到CLI包装器还是顶级C#项目?
  • 将其替换为::asio调用(调用哪种方法?)
EN

回答 1

Stack Overflow用户

发布于 2013-04-28 08:30:38

Boost.AsioWinsock之前初始化main() -它为此使用了一个静态对象。以下是winsock_init.hpp的摘录

代码语言:javascript
复制
// 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加载时被初始化。

(这就是说,恐怕您不能在Asio下用/Za编译/Za,但也不必这样做才能将代码移植到Linux。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16260891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档