2013-07-22 18 views
5

Sono confuso su un paio di cose sulla winsock.Winsock2.h vs winsock2.h e wsock32.lib vs ws2_32.lib

In primo luogo, quale sia la differenza tra tra cui Winsock2.h vs Winsock2.h (tappi di 'w')

In secondo luogo, qual è la differenza tra il collegamento con wsock32.lib con ws2_32.lib?

Ho provato un paio di combinazioni e provocano errori in fase di compilazione. Qualcuno può spiegarmi il ragionamento logico su cosa usare?

Grazie Nick

risposta

9

Non v'è alcuna differenza tra Winsock2.h e winsock2.h. I nomi dei file sono case-insensitive su file system Windows tipici. Il file ws2_32.lib è per Winsock 2, mentre wsock32.lib è per la versione obsoleta e precedente.

+0

Addendum: Winsock 2 (ws2_32.lib) è un'estensione di Winsock 1 (wsock32.dll). Un programma che attualmente funziona contro wsock32.dll dovrebbe funzionare correttamente se ricollegato a ws2_32.dll. –

+0

L'esempio multicast HawkNL (hawksoft.com/hawknl) non funziona quando si collega a ws2_32.lib, ma funzionerà con wsock32.lib. Tuttavia, una volta aggiornati gli # include per abbinare la nuova libreria diventa , ecc., Le cose riprendono a funzionare. –

3

come illustrato di seguito: https://technet.microsoft.com/en-us/library/cc958787.aspx, Wsock32.dll e wsock.dll sono i gusci retro-compatibilità per w2_32.dll

È possibile utilizzare wsock32.dll per la compatibilità con Win95, o wsock.dll per la compatibilità con win3 .11 :) Normalmente vengono utilizzati dai programmi Win95 e Win3.11 per compatibilità con win2K +

wsock32.lib e w2_32.lib contengono un elenco delle funzioni esportate e degli elementi di dati dalle librerie di collegamento dinamico.

Nota: alcune delle differenze tra wsock32 e ws_32 potrebbero essere impreviste. Ad esempio, wsock32 eseguirà la versione 2.2 dell'API di winsock, ma per ottenere la versione 2.0 è necessario w2_32.