Gå til innhold

Winsock2.h masse errors


Anbefalte innlegg

hei...

 

har nå prøvd å få satt opp en socket ved å bruke winsock2. Jeg bruker samme kode som på devc++ men nå funker det ikke lenger. er ikke koden det er feil med, men selve fila winsock2.h som får en masse feil.

 

eks.

c:\Documents and Settings\Eier\Skrivebord\Flight-Real\winsock2.h(536) : error C2556: 'int (__cdecl *DECLARE_STDCALL_P(servent *))(const char *,const char *)' : overloaded function differs only by return type from 'int (__cdecl *DECLARE_STDCALL_P(servent *))(int,const char *)'

 

får 44 errors fra winsock2.h noen som vet hva som er feil?

 

mvh. Fredrik

Lenke til kommentar
Videoannonse
Annonse

Lær deg å bruke kompileren fra grunnen av:

http://www.network-theory.co.uk/docs/gccintro/

 

Det å kopiere over winsock2.h til en eller annen katalog fordi det "ikke funka" er så idiotisk at jeg blir tullete i hue av å tenke på det.

 

Edit:

Du er nødt til å droppe alt av grafiske programmeringsverktøy (VC++, Dev-C++, KDevelop o.s.v.) intill du forstår hva som foregår - først da kan du begynne å bruke slike verktøy for at programmeringen skal gå fortere. Man bruker kun slike verktøy for at detaljer man allerede forstår ikke skal komme i veien for nye detaljer mer relatert til selve koden, som man først da prøver å forstå.

 

Gir ikke dette mening? .. Ta å les setningene et par ganger .. Jeg har sikkert sagt dette 10 000 ganger nå .. heh :]

Endret av søpple
Lenke til kommentar

nå har jeg aldri brukt winsock2.h men jeg tviler på at microsoft har sluppet ut den hvis den inneholder errors..

 

kjenn dine begrensninger.

når du ikke vet hvordan pointere og arrayer funker engang, så er det ikke noe vits å drive med opengl og winsock og sånn. fordi når du da støter på feil, så har du ikke peiling på hvorfor feilen kommer eller hva du skal gjøre, også kommer du hit og griner om at det er headerne sin skyld.

Endret av iobas
Lenke til kommentar

for det første. jeg vet veldig godt hva en array er hvordan den defineres og hvordan du henter ut informasjon derifra.

 

Så vidt jeg vet så er den koden jeg bruker helt fin. men skal se sjekke litt til. men skjønner ikke hvorfor kompilatoren klager på en masse redefinations i winsock2.h og ikke i vc++. men har noe hørt om at det har vært feil med winsock2.h før?

Lenke til kommentar
Lær deg å bruke kompileren fra grunnen av:

http://www.network-theory.co.uk/docs/gccintro/

 

Det å kopiere over winsock2.h til en eller annen katalog fordi det "ikke funka" er så idiotisk at jeg blir tullete i hue av å tenke på det.

 

Edit:

Du er nødt til å droppe alt av grafiske programmeringsverktøy (VC++, Dev-C++, KDevelop o.s.v.) intill du forstår hva som foregår - først da kan du begynne å bruke slike verktøy for at programmeringen skal gå fortere. Man bruker kun slike verktøy for at detaljer man allerede forstår ikke skal komme i veien for nye detaljer mer relatert til selve koden, som man først da prøver å forstå.

 

Gir ikke dette mening? .. Ta å les setningene et par ganger .. Jeg har sikkert sagt dette 10 000 ganger nå .. heh :]

Syns dette har vært det beste rådet hittil! Du sier jo selv at du ikke skjønner kompilatoren! :whistle:

Lenke til kommentar
det jeg lurte på var om noen hadde hørt om noe lignende med winsock2.h?

Nei - aldri.

 

men skjønner ikke hvorfor kompilatoren klager på en masse redefinations i winsock2.h og ikke i vc++.

Hva mener du her? "Ikke i vc++"..? Hva bruker du egentlig?

 

* VC++

..eller..

* MinGW ...?

 

Om du bruker MinGW foreslår jeg at du gjør en fresh reinstall, og at du for guds skyld ikke "flytter over" noe når ting "ikke funker".

 

men har noe hørt om at det har vært feil med winsock2.h før?

Nei - aldri. Feilene rundt slike ting har for meg altid vært "eksterne"; altså ikke kode-relaterte når man ser på winsock2.h i isolasjon.

Endret av søpple
Lenke til kommentar

har nå prøvd masse forskjelig kode til vc++ og ingen funker p.g.a winsock2.h ender opp med masse feil.

 

edit: er snakk om VC++

men skjønner ikke hvorfor kompilatoren klager på en masse redefinations i winsock2.h og ikke i vc++.

 

begklager dårlig formulering. skjønner bare ikke hvorfor den vc++ skal klage på redefinasjoner i winsock2.h trodde de var forhåndskompilert det som fulgte med vc++. eller har jeg tatt feil her?

Endret av Fredrik90
Lenke til kommentar
  • 2 uker senere...

Prøv heller winsock.h og husk at du må inkludere lib filene wsock32.lib og mpr.lib

 

Det gjør du under "my project" "settings" "link" "add object/module" eller noe...

 

PS: Husk at hvis du skal sende INT over en socket, bør du sende den i binary. Det gjør du slik:

 

int theInteger = 123;

send(mysocket, (const char*)&theInteger, 4, 0);

 

* const char* fordi at man ikke kan sende inter over socket uten videre...

* & fordi at det er i binary

* , 4 , fordi at en int inneholder 4 bits eller hva det var :p

 

Håper dette hjelper!

 

Mantion

Endret av Mantion
Lenke til kommentar
* const char* fordi at man ikke kan sende inter over socket uten videre...

* & fordi at det er i binary

* , 4 ,  fordi at en int inneholder 4 bits eller hva det var :p

Heltall representeres binært i minnet, på harddisken og over nettverkstilkoblinger -- på samme måte som alt annet i datamaskinen. Det du gjør er altså ikke å konvertere tallet til binær; du kaster om heltallets adresse til en peker til en C-streng.

 

Et heltall trenger for øvrig ikke å være på 4 byte, så det er bedre å bruke f.eks. sizeof(int).

 

Edit: Fjernet en malplassert "det".

Endret av Myubi
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...