DomusP45
19-03-2014, 07:24
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/practical/CSockets/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
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?
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/practical/CSockets/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
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?