Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Errori strani
Forum - C/C++ - Errori strani

Avatar
Phantom (Normal User)
Newbie


Messaggi: 15
Iscritto: 17/05/2007

Segnala al moderatore
Postato alle 2:05
Lunedì, 20/08/2007
Sera gente :k:
sti giorni mi sono rimesso a studiare un pò il c++ e ho continuato a vedere la parte dei socket ma ogni volta ke compilo qualcosa mi da errori strani di link bhò , cmq vi posto qui un sorgente tipo con i relativi errori

-------------------------------------------
CODE:

#include <windows.h>
#include <winsock.h> //includo le varie librerie tra cui quella winsock
#include <stdio.h>
int main()
{
SOCKET sock; // creo la socket chiamato sock che userò nella connessione
struct sockaddr_in sock_addr; // inizializzo la socket
WSADATA data;  // inizializzo la variabile che contiene le primitive di Winsock
WORD p;
p=MAKEWORD(2,0);  // creo la variabile p che contiene la versione della wsock32.dll
WSAStartup(p,&data); // inizializzo la wsock32.dll verificandone la mancanza di errori

sock=socket(PF_INET,SOCK_STREAM,0);  // creo la socket indicandone le caratteristiche
sock_addr.sin_family=PF_INET; // indico il protocollo utilizzato (TCP/IP)
sock_addr.sin_port=htons(21); //indico la porta a cui connettere la socket
sock_addr.sin_addr.S_un.S_un_b.s_b1=127; // indico l'indirizzo IP
sock_addr.sin_addr.S_un.S_un_b.s_b2=0;
sock_addr.sin_addr.S_un.S_un_b.s_b3=0;
sock_addr.sin_addr.S_un.S_un_b.s_b4=1;
connect(sock,(struct sockaddr*)&sock_addr,sizeof(struct sockaddr)); // mi connetto all'indirizzo scelto
closesocket(sock);  // chiudo la socket
WSACleanup();       //libero le risorse utilizzate dalla libreria Winsock
return 0;
}
-------------------------------------------

-------------------------------------------
ERRORI:

Deleting intermediate files and output files for project 'Client - Win32 Debug'.
--------------------Configuration: Client - Win32 Debug--------------------
Compiling...
Client.c
Linking...
Client.obj : error LNK2001: unresolved external symbol _WSACleanup@0
Client.obj : error LNK2001: unresolved external symbol _closesocket@4
Client.obj : error LNK2001: unresolved external symbol _connect@12
Client.obj : error LNK2001: unresolved external symbol _htons@4
Client.obj : error LNK2001: unresolved external symbol _socket@12
Client.obj : error LNK2001: unresolved external symbol _WSAStartup@8
Debug/Client.exe : fatal error LNK1120: 6 unresolved externals
Error executing link.exe.

Client.exe - 7 error(s), 0 warning(s)
  -----------------------------------------

iuto ma ke roba è? mai visti errori cosi ._. vabè se potete un ringraziamento in anticipo ciao e grazie x tutto ciò ke fate!!:k:

PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 14:31
Lunedì, 20/08/2007
devi linkare la libreria per usare le socket, puoi farlo programmaticamente così:

#pragma comment(lib,"Ws2_32.lib")

questo per visual studio, non lo so se funziona anche in altri ide.

eventualmente devi andare da qualche parte nella configurazione del linker, tipo "project-setting-link" o qualcosa di simile e aggiungere fra le libreria da linkare Ws2_32.lib



Mai memorizzare quello che puoi comodamente trovare in un libro.
Imparare è un'esperienza; tutto il resto è solo informazione.
L'immaginazione è più importante della conoscenza.
(A. Einstein)


Esistendo poi google...
PM Quote
Avatar
Phantom (Normal User)
Newbie


Messaggi: 15
Iscritto: 17/05/2007

Segnala al moderatore
Postato alle 20:19
Lunedì, 20/08/2007
MMMM vero risolto grazie di tutto :D :k:

PM Quote
Avatar
Phantom (Normal User)
Newbie


Messaggi: 15
Iscritto: 17/05/2007

Segnala al moderatore
Postato alle 23:47
Lunedì, 20/08/2007
Già ke ci sn ne posto anche un altro di errore xD

" error C2143: syntax error : missing ';' before 'PCH creation point' "
mmmm cercando mi sembra di aver capito che manca qualche punto e virgola ma ci sn tutti ._. uhmmmmm

PM Quote
Avatar
Phantom (Normal User)
Newbie


Messaggi: 15
Iscritto: 17/05/2007

Segnala al moderatore
Postato alle 23:51
Lunedì, 20/08/2007
Lol no niente risolto nn era un punto e virgola ma una parentesi :°D scusate il post inutile :|

PM Quote