PDA

View Full Version : [Visual C++ 2008 Express Edition] creare socket su vista


Prince_81
07-02-2009, 10:01
risposta di fero86 al precedente thread chiuso a causa del titolo non compatibile con le regole del forum:

includi winsock2.h e linka ws2_32.lib. in generale Windows é altamente compatibile coi socket di Berkeley (non del tutto sapevo, ma nel 95% dei casi non avrai mai a che fare con le differenze).

ho provato ad aggiungere la libreria winsock2.h mentre non so come si linka ws2_32.lib. pultroppo il fase di compilazione mi vengono dati i seguenti errori:

1>rec.obj : error LNK2019: riferimento al simbolo esterno __imp__accept@12 non risolto nella funzione _main
1>rec.obj : error LNK2019: riferimento al simbolo esterno __imp__listen@8 non risolto nella funzione _main
1>rec.obj : error LNK2019: riferimento al simbolo esterno __imp__ntohs@4 non risolto nella funzione _main
1>rec.obj : error LNK2019: riferimento al simbolo esterno __imp__getsockname@12 non risolto nella funzione _main
1>rec.obj : error LNK2019: riferimento al simbolo esterno __imp__bind@12 non risolto nella funzione _main
1>rec.obj : error LNK2019: riferimento al simbolo esterno __imp__socket@12 non risolto nella funzione _main

le librerie che ho incluso sono :

#include <stdio.h>
#include <sys/types.h>


#include <fcntl.h>
#include <winsock2.h>

sapreste dirmi che cosa c'č che non va?

cionci
07-02-2009, 10:14
L'errore č proprio perché non fai il link di ws2_32.lib.
Non ho VC++ sottomano. Vado a tentoni quindi. Devi andare nelle opzioni di compilazione del progetto->linking. Ci dovrebbero gią essere dei .lib che vengono linkati. Aggiungi quello sopra.

fero86
07-02-2009, 13:50
proprietį del progetto, Linker, Input, Additional Dependencies. inizialmente l'elenco é vuoto perché le librerie di default vengono ereditate automaticamente dalle proprietį relative a tutta la soluzione. se modifichi quell'opzione ricordati di modificarla anche nella modalitį di compilazione Release oltre che Debug.

Prince_81
08-02-2009, 14:30
fero sei grande ha funzionato riesco a compilare anche se ci sono dei warning, solo che non so come si modifica anche in compilazione e release, forse č per questo che mi da un errore quando avvio il progetto vedi immagine in allegato.

Prince_81
08-02-2009, 14:33
#include <sys/socket.h>
#include <netinet/in.h>

queste due librerie le ho dovuto togliere perchč il compilatore non le riconosce non č che il problema sta proprio qui?

Forse funzionano solo in ambiente linux?