【问题标题】:Winsock2.h vs winsock2.h and wsock32.lib vs ws2_32.libWinsock2.h 与 winsock2.h 和 wsock32.lib 与 ws2_32.lib
【发布时间】:2013-07-22 21:17:15
【问题描述】:

我对有关 winsock 的一些事情感到困惑。

首先,包含 Winsock2.h 与 winsock2.h('w' 的大写)有什么区别

二、用ws2_32.lib链接wsock32.lib有什么区别?

我尝试了几种组合,它们会导致编译时错误。谁能解释一下使用什么的逻辑推理?

谢谢 尼克

【问题讨论】:

    标签: c++ windows winsock


    【解决方案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 以匹配新库 变为 等等,事情又开始工作了。
    【解决方案2】:

    如下所示: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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-09
      • 2016-01-23
      • 2012-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-25
      相关资源
      最近更新 更多