首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MFC支持winsock2吗?

MFC支持winsock2吗?
EN

Stack Overflow用户
提问于 2010-08-02 19:10:47
回答 2查看 1.1K关注 0票数 2

我是Visual Studio的新手。我读到过一些MFC只支持winsock1的地方。MFC不支持winsock2是真的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-02 19:29:00

我只是引用了here的话。

包含更改:#

收件人:#include

除了能够使用特定于winsock2的调用之外,没有任何不同。即使你只包含winsock.h,你也可以实际使用winsock2。实际的区别在于你是链接到wsock32.lib (winsock1.1)还是ws2_32.lib (winsock2.2)。正如我所指出的,你必须使用它。简单地更改头文件或链接到的库并不会对性能、效率等产生任何影响。实际上,在不使用ws2的情况下切换到BSD时,您可能会失去与支持纯BSD套接字调用的操作系统的兼容性。

Winsock2是为性能而来的。IO由windows内核管理(例如重叠io )。所有的winsock1.1,比如基本的send/recv调用都被直接映射到winsock2.2的对应部分(WSASend/WSARecv).winsock2是完全向下兼容winsock.的

票数 1
EN

Stack Overflow用户

发布于 2010-08-02 19:16:28

奇怪的是,它看起来只使用了1.1。

你应该有你的VS安装的源代码-你会在stdafx.h中看到它包含winsock.h (而不是2),并且在sockcore.cpp中有初始化1.1的代码。VS2010的MFC是一样的。

如果您想在自己的代码中使用winsock2,则必须在项目的stdafx.h中的MFC头之前包含header,这样声明就不会冲突。希望这不会破坏AfxSocket接口:-/

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

https://stackoverflow.com/questions/3387142

复制
相关文章

相似问题

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