C++ problem s winsock.h

Programovacie jazyky, rady, poradňa...
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8224
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

C++ problem s winsock.h

Príspevok od používateľa harrison314 »

Mamproblem rozbehat skokety aj funkciu gethostbyname na C++ , použivam Dev-Cpp.

Kód: Vybrať všetko

#include<windows.h>
#include<winsock.h>
#include<iostream>
using namespace std;
int main()
{
WSADATA data; //winsock will fill this with structure with information
int status;
telnet *tel;
//just this function to see if the winsock.dll is initialized
status=WSAStartup(MAKEWORD(2,2),&data);
tel=gethostbyname("server.sk");
if(status==0)
{
cout<<"Socket created."<<endl;
}
else
{
cout<<"Error code:"<<GetLastError()<<endl;
WSACleanup();
}
return 0;
}

vyhodi chybu

Kód: Vybrať všetko

unresolved external symbol _WSACleanup@0 referenced in function _main
c-ice
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 475
Registrovaný: 04 mar 2008, 15:18
Kontaktovať používateľa:

Príspevok od používateľa c-ice »

http://msdn.microsoft.com/en-us/library ... S.85).aspx

Requirements
Header Winsock2.h
Library Ws2_32.lib
DLL Ws2_32.dll

Kód: Vybrať všetko

#include<winsock2.h> 
Máš prilinkovanu knižnicu ? Ws2_32.lib v Dev neviem kde sa to robi ale vo VC 6 pripadne VC 9 by som ti mohol pozret povedat...

a getHostByName tu máš aj príklad programu s ktorého môžeš vychádzat...
http://msdn.microsoft.com/en-us/library ... S.85).aspx
osobne som tieto veci nerozbehal na Dev a práve kvôli winsock a oknam som prešiel na Visual Studio
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8224
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Príspevok od používateľa harrison314 »

Bol by som rad ked mi to prezradis , aj ked mam VS 2008 tak to bude podobne.
Lebo prilinkovanie som este nerobil.
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

project->project options->parameters->add library or object->libwsock32.a (prípadne sa tam niekde zadá -lwsock32, ale kde presne netuším, Dev-C++ som nepoužíval už niekoľko rokov)
c-ice
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 475
Registrovaný: 04 mar 2008, 15:18
Kontaktovať používateľa:

Príspevok od používateľa c-ice »

Project / Settings / Links / tam do Pola zapíšeš "ws2_32.lib" (bez uvodzoviek) toto si pamätám z VC 6 v 2008 to bude nejak podobne pozret ti to môžem v noci presne, lebo teraz som v Ubuntu a nechce sa mi prehadzovat takže len spamäti píšem a moc často to nepouživam...
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8224
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Príspevok od používateľa harrison314 »

na VS 2008 je to nejako inak neviem sa z toho vysomarit
c-ice
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 475
Registrovaný: 04 mar 2008, 15:18
Kontaktovať používateľa:

Príspevok od používateľa c-ice »

harrison314 napísal:na VS 2008 je to nejako inak neviem sa z toho vysomarit
Ani velmi nie ešte som v nom nič ne linkoval ale je to to iste

project/"nazov_projetu" properties(settings a properties ciste nahodna podobnost :roll: ) alebo "Alt+F7" -> Configuration Properties -> Linker -> Input -> a do Additional Depadies napíš "Ws2_32.lib"

tod všio nič zmätujuce klikatko inak sa to da aj takto ako chrono napisal (som to teraz našiel na nete)
Pre Dev-C++: Project >> Project Options >> Parameters >> Add Lib >> "libwsock32.a" (možno mi to nefungovalo v Dev lebo som nevedel ze treba prilinkovat takuto kniznicu lebo ja som sa stale snazil to ws2_32.lib prilinkovat)
alebo aj tento Kod by mohol ist teoreticky

Kód: Vybrať všetko

#pragma comment( lib, "ws2_32" );
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8224
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Príspevok od používateľa harrison314 »

Pre Dev-C++ to ide, aj program bezi tak ako ma
Napísať odpoveď