在使用MSVC9.0构建时是否需要使用WS2_32.dll而不是wsock32.dll

时间:2010-02-15 21:29:05

标签: visual-c++ winsock

我正在移植一些用MSVC 9.0编译的代码,我的一位同事提到我们需要链接WS2_32.dll,因为现在只支持Winsock 2。有没有道理呢?我们的代码非常陈旧,严重依赖于wsock32.dll,因此这个要求可能是该项目的一大障碍。

由于

1 个答案:

答案 0 :(得分:7)

只要您没有使用任何Winsock 2特定功能,您应该可以很好地链接到wsock32.dll。旧的Winsock 1.1 API不推荐使用。 Winsock 2是Winsock 1的扩展,而不是它的替代品。

由于Winsock 2纯粹是一个扩展,因此当针对ws2_32.dll重新链接时,当前针对wsock32.dll工作的程序仍然可以正常工作。不这样做的最好理由是你仍然需要支持Windows 95系统,因为Winsock 2是这些系统的可下载插件。 Winsock 2是在Windows 98和Windows NT 4中引入的。

Winsock 2支持度。使用Windows 7下可用的所有最新功能的程序即使使用Winsock 2插件,也可能无法与Windows 95一起使用。有时反过来也是如此:例如,较新的Winsock堆栈已经删除了Windows 2000和XP中可用的一些原始套接字支持。

底线,在您必须支持的所有平台上进行测试。