2013-07-22 195 views
5

我對關於winsock的一些事情感到困惑。Winsock2.h vs winsock2.h和wsock32.lib vs ws2_32.lib

首先,什麼包括Winsock2.h VS winsock2.h

二( 'W' 的上限)之間的區別,就是與WS2_32.LIB wsock32.lib鏈接之間的區別?

我試過幾個組合,它們導致編譯時錯誤。任何人都可以解釋我使用什麼邏輯推理嗎?

感謝 尼克

回答

9

Winsock2.hwinsock2.h之間沒有什麼區別。文件名在典型的Windows文件系統上不區分大小寫。 ws2_32.lib文件適用於Winsock 2,而wsock32.lib適用於過時的舊版本。

+0

附錄:Winsock 2(ws2_32.lib)是Winsock 1(wsock32.dll)的擴展。目前針對wsock32.dll工作的程序在重新鏈接到ws2_32.dll時應該仍能正常工作。 –

+0

HawkNL多播示例(hawksoft.com/hawknl)在與ws2_32.lib鏈接時不起作用,但可與wsock32.lib一起使用。但是,一旦你更新#include以匹配新庫變成等,事情就會重新開始。 –

3

如下所示:https://technet.microsoft.com/en-us/library/cc958787.aspx,和的wsock32.dll是wsock.dll爲w2_32.dll

可以使用的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。