Winsock2.h 与 winsock2.h 和 wsock32.lib 与 ws2_32.lib
Posted
技术标签:
【中文标题】Winsock2.h 与 winsock2.h 和 wsock32.lib 与 ws2_32.lib【英文标题】:Winsock2.h vs winsock2.h and wsock32.lib vs ws2_32.lib 【发布时间】:2013-07-22 21:17:15 【问题描述】:我对有关 winsock 的一些事情感到困惑。
首先,包含 Winsock2.h 与 winsock2.h('w' 的大写)有什么区别
二、用ws2_32.lib链接wsock32.lib有什么区别?
我尝试了几种组合,它们会导致编译时错误。谁能解释一下使用什么的逻辑推理?
谢谢 尼克
【问题讨论】:
【参考方案1】:Winsock2.h
和 winsock2.h
之间没有区别。文件名在典型的 Windows 文件系统上不区分大小写。 ws2_32.lib
文件用于 Winsock 2,而 wsock32.lib
用于过时的旧版本。
【讨论】:
附录:Winsock 2 (ws2_32.lib) 是 Winsock 1 (wsock32.dll) 的扩展。当前针对 wsock32.dll 工作的程序在重新链接到 ws2_32.dll 时应该仍然可以正常工作。 HawkNL 多播示例 (hawksoft.com/hawknl) 在与 ws2_32.lib 链接时不起作用,但可以与 wsock32.lib 一起使用。但是,一旦您更新#include 以匹配新库如下所示:https://technet.microsoft.com/en-us/library/cc958787.aspx、wsock32.dll 和 wsock.dll 是 w2_32.dll 的向后兼容 shell
你可以使用wsock32.dll来兼容Win95,或者wsock.dll来兼容win3.11 :) 但是通常它们被Win95和Win3.11程序用来兼容win2K+
wsock32.lib 和 w2_32.lib 包含从动态链接库中导出的函数和数据元素的列表。
注意:wsock32 和 ws_32 之间的一些差异可能是意料之外的。例如 wsock32 将运行 winsock 2.2 版 API -- 但要获得 2.0 版,您需要 w2_32。
【讨论】:
以上是关于Winsock2.h 与 winsock2.h 和 wsock32.lib 与 ws2_32.lib的主要内容,如果未能解决你的问题,请参考以下文章