Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-03-2014, 07:24   #1
DomusP45
Senior Member
 
L'Avatar di DomusP45
 
Iscritto dal: Apr 2010
Città: Whiterun
Messaggi: 580
[Visual C++ 2010] Socket in Visual C++ 2010 e Windows 7 64bit

Salve a tutti,
non ho mai programmato una socket, nè ho idea di come si faccia.

A titolo del tutto esemplificativo mi è stata proposta questa

http://cs.baylor.edu/~donahoo/practi...ets/practical/

che è molto intuitiva, ma è vecchia e a quanto pare fatta per sistemi 32bit.

Io devo creare una socket in ambiente 64bit in un'applicazione a 64bit, e questa non ne vuole sapere di compilare.

Ho configurato l'ambiente come descritto, e cercando con google ho trovato che la libreria da includere wsock32.lib in windows 7 è stata sostituita dalla libreria ws2_32.dll, che ho trovato nella cartella

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib\x64

ma anche aggiungendo questa cartella a quella delle librerie aggiuntive, non compila.

Ad esempio, provando a compilare TCPEchoClient, continua a darmi questi errori

Codice:
1>------ Inizio compilazione: Progetto: sockt, Configurazione: Debug Win32 ------
1>Compilazione avviata 19/03/2014 08:22:42.
1>InitializeBuildStatus:
1>  Aggiornamento timestamp di "Debug\sockt.unsuccessfulbuild".
1>ClCompile:
1>  Tutti gli output sono aggiornati.
1>ManifestResourceCompile:
1>  Tutti gli output sono aggiornati.
1>TCPEchoClient.obj : error LNK2019: riferimento al simbolo esterno "public: int __thiscall CommunicatingSocket::recv(void *,int)" (?recv@CommunicatingSocket@@QAEHPAXH@Z) non risolto nella funzione _main
1>TCPEchoClient.obj : error LNK2019: riferimento al simbolo esterno "public: void __thiscall CommunicatingSocket::send(void const *,int)" (?send@CommunicatingSocket@@QAEXPBXH@Z) non risolto nella funzione _main
1>TCPEchoClient.obj : error LNK2019: riferimento al simbolo esterno "public: __thiscall TCPSocket::TCPSocket(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,unsigned short)" (??0TCPSocket@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@G@Z) non risolto nella funzione _main
1>TCPEchoClient.obj : error LNK2019: riferimento al simbolo esterno "public: __thiscall Socket::~Socket(void)" (??1Socket@@QAE@XZ) non risolto nella funzione "public: __thiscall CommunicatingSocket::~CommunicatingSocket(void)" (??1CommunicatingSocket@@QAE@XZ)
1>C:\OPENCV\Test\miei\provefunzioni\sockt\Debug\sockt.exe : fatal error LNK1120: 4 esterni non risolti
1>
1>Compilazione NON RIUSCITA.

Qualcuno sa dirmi come risolvere questi problemi di compilazione oppure sa dirmi come creare una socket in un'applicazione 64bit in visual C++ 2010, che cosa utilizzare?
__________________
Come la chiami la chiami, la cocozza sempre cocozza è.
DomusP45 è offline   Rispondi citando il messaggio o parte di esso
Old 19-03-2014, 10:05   #2
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Stai compilando comunque un programma a 32 bit:
Codice:
1>------ Inizio compilazione: Progetto: sockt, Configurazione: Debug Win32 ------
Se vuoi un software a 64bit devi compilare per l'architettura x64.
A quel punto il path delle librerie a 64bit viene incluso automaticamente dall'IDE.

Infine hai referenziato la ws2_32.lib?
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 19-03-2014, 10:14   #3
DomusP45
Senior Member
 
L'Avatar di DomusP45
 
Iscritto dal: Apr 2010
Città: Whiterun
Messaggi: 580
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Stai compilando comunque un programma a 32 bit:
Codice:
1>------ Inizio compilazione: Progetto: sockt, Configurazione: Debug Win32 ------
Se vuoi un software a 64bit devi compilare per l'architettura x64.
A quel punto il path delle librerie a 64bit viene incluso automaticamente dall'IDE.

Infine hai referenziato la ws2_32.lib?
Allora, ho cambiato il progetto a 64 bit come è giusto che sia (avevo fatto quella prova a 32 per capire se era dovuto a quello l'errore di compilazione) e nonostante referenzi quella libreria mi da problemi.

Allora ho provato a cercare direttamente la libreria chiesta dalla classe in C:\ ed ho trovato anche quella nella stessa cartella.

WSock32.Lib in C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib\x64


Allora ho referenziato quella (nelle dipendenze aggiuntive) e messo quella cartella come cartelle di librerie aggiuntive, ed il programma compila.

Ma una volta lanciato,TCPEchoClient, non fa niente. Si apre e si chiude una finestra command.

A questo punto mi chiedo come farlo funzionare: ho capito che windows 7 ha comunque le librerie più vecchie in quella cartella, e se aggiunte come addizionali, il programma compila. E già mi sento meglio.

Ora mi guardo un pò il codice del programma e cerco di capire se non fa niente perchè la libreria c'è per compatibilità, ma alla fine non permette granchè, oppure se quell'esempio necessita di altra roba, se può essere l'antivirus/firewall che blocca il tentativo di comunicazione...

E quindi, ora mi metto a fare queste prove.

Grazie comunque per la risposta, aggiornerò la discussione quando avrò più dettagli sul problema.
__________________
Come la chiami la chiami, la cocozza sempre cocozza è.

Ultima modifica di DomusP45 : 19-03-2014 alle 10:17.
DomusP45 è offline   Rispondi citando il messaggio o parte di esso
Old 19-03-2014, 12:02   #4
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Ma hai provato ad andare in debug? Hai a disposizione uno dei migliori IDE da questo punto di vista, usalo!

I programmi a console si chiudono non appena finito, se non metti niente per interrompere l'esecuzione prima dell'uscita dal main il comportamento è normale.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 19-03-2014, 13:00   #5
DomusP45
Senior Member
 
L'Avatar di DomusP45
 
Iscritto dal: Apr 2010
Città: Whiterun
Messaggi: 580
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Ma hai provato ad andare in debug? Hai a disposizione uno dei migliori IDE da questo punto di vista, usalo!

I programmi a console si chiudono non appena finito, se non metti niente per interrompere l'esecuzione prima dell'uscita dal main il comportamento è normale.
Si si, ho messo system("Pause") per fermare l'esecuzione...credo sia dovuto al fatto che necessita di parametri in ingresso per funzionare...

Grazie comunque della disponibilità tomminno! Buona giornata!
__________________
Come la chiami la chiami, la cocozza sempre cocozza è.
DomusP45 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
La Serie A con DAZN e Amazon Prime con l...
Giochi Ubisoft su Steam senza Ubisoft Co...
Miami Beach ha autorizzato la maxi opera...
Apple regala un altro anno di funzioni s...
Alla fine è successo davvero: Vol...
Il meglio di Amazon del weekend in uno s...
Speciale TV in offerta su Amazon: Hisens...
Non c'è pace per Trezor: 347.000 e-mail ...
È un portatile Dell e li vale tut...
Apple iPhone 17 Pro Max 256GB a 1.195€ (...
GPT-6 Astra è davvero AGI o non s...
LG OLED G6S 48'' a 845€ e G6 55'' a 1368...
Mantax Otax: il malware Android che crip...
Musk incassa un altro maxi contratto IA:...
Le vendite di EV sono esplose in tutto i...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 22:01.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v