problem beim compilieren - socket
-
hi. also das ist hier der quellcode. gehe grad n tutorial durch. aber da kommt ein fehler beim compilieren, denn ich nich verstehe.
###########################################
fehler:
17 F:\Dokumente und Einstellungen\dean\Desktop\Programmieren\c++\codz\socket\socket1.c
parse error before '(' token17 F:\Dokumente und Einstellungen\dean\Desktop\Programmieren\c++\codz\socket\socket1.c
`lpWSAData' declared as function returning a function17 F:\Dokumente und Einstellungen\dean\Desktop\Programmieren\c++\codz\socket\socket1.c
`lpWSAData' declared as function returning a function48 F:\Dokumente und Einstellungen\dean\Desktop\Programmieren\c++\codz\socket\socket1.c
redefinition of `startWinsock'23 F:\Dokumente und Einstellungen\dean\Desktop\Programmieren\c++\codz\socket\socket1.c
`startWinsock' previously defined here
############################################include <windows.h> #include <winsock2.h> #include <stdio.h> int WSAStartup ( WORD wVersionRequested, LPWSADATA lpWSAData MAKEWORD(2,0); ); int startWinsock() { WSADATA wsa; return WSAStartup(MAKEWORD(2,0),&wsa); } //Prototypen int statWinsock(void); int main() { long rc; rc=startWinsock(); if(rc!=0) { printf("Fehler: startWinsock, fehler code: %d\n",rc); return 1; } else { printf("Winsock gestartet!\n"); } return 0; } int startWinsock(void) { WSADATA wsa; return WSAStartup(MAKEWORD(2,0),&wsa); }
danke im voraus
-
Mhh...
3rr0r schrieb:
48 F:\Dokumente und Einstellungen\dean\Desktop\Programmieren\c++\codz\socket\socket1.c
redefinition of `startWinsock'C? C++? (Konsole!!!)
-
ja ich mach ein winAPI projekt -> c file -> screiben -> compilen -> fehler...
was mach ich denn falsch?
-
#include <windows.h> #include <winsock2.h> #include <stdio.h> int WSAStartup ( WORD wVersionRequested, LPWSADATA lpWSAData MAKEWORD(2,0); ); /* Vereinbart. Und wo geschrieben? */ /* int startWinsock() { WSADATA wsa; return WSAStartup(MAKEWORD(2,0),&wsa); } --- kann "wech". Machst du ja unten schon */ //Prototypen int startWinsock(void); // 'r' vergessen int main() { long rc; rc=startWinsock(); if(rc!=0) { printf("Fehler: startWinsock, fehler code: %d\n",rc); return 1; } else { printf("Winsock gestartet!\n"); } return 0; } int startWinsock(void) { WSADATA wsa; return WSAStartup(MAKEWORD(2,0),&wsa); }
Das sehe ich so auf die Schnelle.
-
PS: Vieleicht solltest du ein Konsolenprojekt anlegen.
-
hmm ich habs mit deinem quellcodes mal probiert. es geht fast
der meckert mit dem "MAKEWORD(2,0);"...aber weiss nich wieo...das dient doch dazu das es die Parameter übernimmt. so hab ich aus nem tutorial gelernt.danke
-
nimm mal das Semikolon weg
-
hehe jo...aber mit gehts auch nich...bei dir denn?
int WSAStartup ( WORD wVersionRequested, LPWSADATA lpWSAData MAKEWORD(2,0) );
es geht irgendwie nich...hats denn bei dir geklappt?
err0r
-
Nun fehlt noch das Komma hinter lpWSAData
-
hm..bin ich so blöd?
int WSAStartup ( WORD wVersionRequested, LPWSADATA lpWSAData, MAKEWORD(2,0) );
aber trotzdem:
"9 F:\Dokumente und Einstellungen\dean\Desktop\Programmieren\c++\codz\socket\1\main.c
parse error before '(' token"
was is denn bitte an "MAKEWORD(2,0)" falsch? ich sehs enfach nich...sorry
-
Hallo,
nimm das hier:
int WSAStartup ( WORD wVersionRequested, LPWSADATA lpWSAData MAKEWORD(2,0) );
völlig raus aus deinem Programm, was soll das bewirken?
WSAStartup ist bereits in winsock2.h deklariert, und muß nicht nochmal aufgeführt werden (Win32-API-Funktionen sind in den Headern deklariert...)!
-
wenn ich das aber ganz rausnehme kommt dies:
- [Linker error] undefined reference to `WSAStartup@8'
- F:\Dokumente und Einstellungen\dean\Desktop\Programmieren\c++\codz\socket\1\Makefile.win
[Build Error] [Projekt1.exe] Error 1hab das in Devcpp gemacht.
und in VSnet kommt das:
Compiling...
test1.cpp
f:\Dokumente und Einstellungen\dean\Eigene Dateien\Visual Studio Projects\test1\test1.cpp(37) : fatal error C1010: unexpected end of file while looking for precompiled header directiveBuild log was saved at "file://f:\Dokumente und Einstellungen\dean\Eigene Dateien\Visual Studio Projects\test1\Debug\BuildLog.htm"
test1 - 1 error(s), 0 warning(s)---------------------- Done ----------------------
Build: 0 succeeded, 1 failed, 0 skipped
hm...komisch alles
-
Hallo,
das ist nicht komisch, sondern deutet daraufhin, daß du vergessen hast, die Library für WinSock-Funktionen dem Linker bekanntzumachen. In VSNet machst du das über die Projekt-Einstellungen (dort die Library ws2_32.lib hinzufügen), wo genau man es bei DevCpp einstellt, kann ich dir jetzt nicht sagen (auch hier ws2_32.lib dazulinken)).
Zum Fehler mit den "vorkompilierten Headern": auch das kann man bei VS einstellen, daß keine vorkompilierten Header verwendet werden
MfG
-
habs geschafft
dankeeeee