Fehler mit Sockeln
-
Ich habe hier ein Programm(also eine Vorabversion), dass den PC ausschalten soll,wenn es etwas über dne Port 12345 emfängt. Unter Vista lässt sich das Programm kompilieren und ausführen. Wenn es die Daten emfängt geht das Programm aus nicht jedoch der PC(Das ist das 1. Problem).
Dann habe ich das ganze unter XP(da soll es später laufen) probiert.
Die .exe funktionier tnicht und emfielt das Programm neu zu installieren.
Wenn ich jetzt den Quelltext auf XP neu kompilieren will klappt es nichtmehr und ich bekomme massig Fehler(Das ist das Hauptproblem). Ich hoffe sehr mir kann da jemand helfen.Der Quelltext
#include <windows.h> #include <iostream> #include <winsock2.h> #include <stdio.h> long rc; SOCKET acceptSocket; int Temp; SOCKADDR_IN addr; HWND handle; SOCKET connectedSocket; char buf[256]; int startWinsock(void); int main() { handle=GetConsoleWindow(); ShowWindow(handle,SW_HIDE); rc=startWinsock(); acceptSocket=socket(AF_INET,SOCK_STREAM,0); memset(&addr,0,sizeof(SOCKADDR_IN)); addr.sin_family=AF_INET; addr.sin_port=htons(12345); addr.sin_addr.s_addr=ADDR_ANY; rc=bind(acceptSocket,(SOCKADDR*)&addr,sizeof(SOCKADDR_IN)); rc=listen(acceptSocket,10); connectedSocket=accept(acceptSocket,NULL,NULL); if(connectedSocket==INVALID_SOCKET) { printf("Fehler: accept, fehler code: %d\n",WSAGetLastError()); return 1; } else { printf("Neue Verbindung wurde akzeptiert!\n"); } recv(connectedSocket,buf,256,0); ExitWindowsEx(EWX_POWEROFF|EWX_FORCE,0); return 0; } int startWinsock(void) { WSADATA wsa; return WSAStartup(MAKEWORD(2,0),&wsa); }Hier die Fehler unter XP:
Kompilieren...
main.cpp
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(91) : warning C4005: 'AF_IPX': Makro-Neudefinition
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(460): Siehe vorherige Definition von 'AF_IPX'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(127) : warning C4005: 'AF_MAX': Makro-Neudefinition
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(479): Siehe vorherige Definition von 'AF_MAX'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(163) : warning C4005: 'SO_DONTLINGER': Makro-Neudefinition
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(402): Siehe vorherige Definition von 'SO_DONTLINGER'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(206) : error C2011: 'sockaddr': 'struct' Typneudefinition
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(485): Siehe Deklaration von 'sockaddr'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(384) : error C2143: Syntaxfehler: Es fehlt '}' vor 'Konstante'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(384) : error C2143: Syntaxfehler: Es fehlt ';' vor 'Konstante'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(384) : error C2059: Syntaxfehler: 'Konstante'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(437) : error C2143: Syntaxfehler: Es fehlt ';' vor '}'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(437) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(437) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(518) : warning C4005: 'IN_CLASSA': Makro-Neudefinition
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(287): Siehe vorherige Definition von 'IN_CLASSA'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(524) : warning C4005: 'IN_CLASSB': Makro-Neudefinition
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(293): Siehe vorherige Definition von 'IN_CLASSB'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(530) : warning C4005: 'IN_CLASSC': Makro-Neudefinition
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(299): Siehe vorherige Definition von 'IN_CLASSC'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(541) : warning C4005: 'INADDR_ANY': Makro-Neudefinition
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(304): Siehe vorherige Definition von 'INADDR_ANY'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(543) : warning C4005: 'INADDR_BROADCAST': Makro-Neudefinition
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(306): Siehe vorherige Definition von 'INADDR_BROADCAST'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(577) : error C2011: 'sockaddr_in': 'struct' Typneudefinition
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(312): Siehe Deklaration von 'sockaddr_in'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(132) : error C2011: 'fd_set': 'struct' Typneudefinition
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(68): Siehe Deklaration von 'fd_set'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(167) : warning C4005: 'FD_SET': Makro-Neudefinition
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(102): Siehe vorherige Definition von 'FD_SET'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(176) : error C2011: 'timeval': 'struct' Typneudefinition
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(111): Siehe Deklaration von 'timeval'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(232) : error C2011: 'hostent': 'struct' Typneudefinition
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(167): Siehe Deklaration von 'hostent'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(245) : error C2011: 'netent': 'struct' Typneudefinition
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(180): Siehe Deklaration von 'netent'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(252) : error C2011: 'servent': 'struct' Typneudefinition
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(187): Siehe Deklaration von 'servent'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(264) : error C2011: 'protoent': 'struct' Typneudefinition
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(199): Siehe Deklaration von 'protoent'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(360) : error C2011: 'WSAData': 'struct' Typneudefinition
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(322): Siehe Deklaration von 'WSAData'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(458) : error C2011: 'sockproto': 'struct' Typneudefinition
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(494): Siehe Deklaration von 'sockproto'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(500) : error C2011: 'linger': 'struct' Typneudefinition
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(531): Siehe Deklaration von 'linger'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(513) : warning C4005: 'SOMAXCONN': Makro-Neudefinition
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(544): Siehe vorherige Definition von 'SOMAXCONN'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(542) : warning C4005: 'FD_READ': Makro-Neudefinition
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(562): Siehe vorherige Definition von 'FD_READ'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(545) : warning C4005: 'FD_WRITE': Makro-Neudefinition
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(563): Siehe vorherige Definition von 'FD_WRITE'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(548) : warning C4005: 'FD_OOB': Makro-Neudefinition
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(564): Siehe vorherige Definition von 'FD_OOB'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(551) : warning C4005: 'FD_ACCEPT': Makro-Neudefinition
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(565): Siehe vorherige Definition von 'FD_ACCEPT'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(554) : warning C4005: 'FD_CONNECT': Makro-Neudefinition
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(566): Siehe vorherige Definition von 'FD_CONNECT'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(557) : warning C4005: 'FD_CLOSE': Makro-Neudefinition
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(567): Siehe vorherige Definition von 'FD_CLOSE'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(1527) : error C2375: 'accept': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(735): Siehe Deklaration von 'accept'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(1548) : error C2375: 'bind': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(740): Siehe Deklaration von 'bind'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(1567) : error C2375: 'closesocket': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(745): Siehe Deklaration von 'closesocket'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(1586) : error C2375: 'connect': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(747): Siehe Deklaration von 'connect'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(1607) : error C2375: 'ioctlsocket': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(752): Siehe Deklaration von 'ioctlsocket'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(1628) : error C2375: 'getpeername': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(757): Siehe Deklaration von 'getpeername'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(1649) : error C2375: 'getsockname': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(762): Siehe Deklaration von 'getsockname'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(1672) : error C2375: 'getsockopt': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(767): Siehe Deklaration von 'getsockopt'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(1693) : error C2375: 'htonl': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(774): Siehe Deklaration von 'htonl'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(1710) : error C2375: 'htons': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(776): Siehe Deklaration von 'htons'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(1728) : error C2375: 'inet_addr': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(778): Siehe Deklaration von 'inet_addr'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(1745) : error C2375: 'inet_ntoa': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(780): Siehe Deklaration von 'inet_ntoa'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(1763) : error C2375: 'listen': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(782): Siehe Deklaration von 'listen'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(1781) : error C2375: 'ntohl': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(786): Siehe Deklaration von 'ntohl'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(1798) : error C2375: 'ntohs': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(788): Siehe Deklaration von 'ntohs'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(1818) : error C2375: 'recv': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(790): Siehe Deklaration von 'recv'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(1843) : error C2375: 'recvfrom': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(796): Siehe Deklaration von 'recvfrom'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(1869) : error C2375: 'select': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(804): Siehe Deklaration von 'select'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(1893) : error C2375: 'send': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(811): Siehe Deklaration von 'send'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(1918) : error C2375: 'sendto': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(817): Siehe Deklaration von 'sendto'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(1944) : error C2375: 'setsockopt': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(825): Siehe Deklaration von 'setsockopt'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(1966) : error C2375: 'shutdown': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(832): Siehe Deklaration von 'shutdown'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(1986) : error C2375: 'socket': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(836): Siehe Deklaration von 'socket'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(2009) : error C2375: 'gethostbyaddr': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(843): Siehe Deklaration von 'gethostbyaddr'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(2029) : error C2375: 'gethostbyname': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(848): Siehe Deklaration von 'gethostbyname'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(2047) : error C2375: 'gethostname': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(850): Siehe Deklaration von 'gethostname'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(2067) : error C2375: 'getservbyport': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(854): Siehe Deklaration von 'getservbyport'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(2087) : error C2375: 'getservbyname': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(858): Siehe Deklaration von 'getservbyname'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(2106) : error C2375: 'getprotobynumber': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(862): Siehe Deklaration von 'getprotobynumber'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(2124) : error C2375: 'getprotobyname': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(864): Siehe Deklaration von 'getprotobyname'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(2145) : error C2375: 'WSAStartup': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(868): Siehe Deklaration von 'WSAStartup'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(2163) : error C2375: 'WSACleanup': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(872): Siehe Deklaration von 'WSACleanup'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(2180) : error C2375: 'WSASetLastError': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(874): Siehe Deklaration von 'WSASetLastError'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(2197) : error C2375: 'WSAGetLastError': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(876): Siehe Deklaration von 'WSAGetLastError'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(2214) : error C2375: 'WSAIsBlocking': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(878): Siehe Deklaration von 'WSAIsBlocking'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(2231) : error C2375: 'WSAUnhookBlockingHook': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(880): Siehe Deklaration von 'WSAUnhookBlockingHook'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(2248) : error C2375: 'WSASetBlockingHook': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(882): Siehe Deklaration von 'WSASetBlockingHook'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(2265) : error C2375: 'WSACancelBlockingCall': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(884): Siehe Deklaration von 'WSACancelBlockingCall'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(2287) : error C2375: 'WSAAsyncGetServByName': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(886): Siehe Deklaration von 'WSAAsyncGetServByName'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(2314) : error C2375: 'WSAAsyncGetServByPort': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(894): Siehe Deklaration von 'WSAAsyncGetServByPort'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(2340) : error C2375: 'WSAAsyncGetProtoByName': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(902): Siehe Deklaration von 'WSAAsyncGetProtoByName'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(2365) : error C2375: 'WSAAsyncGetProtoByNumber': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(909): Siehe Deklaration von 'WSAAsyncGetProtoByNumber'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(2390) : error C2375: 'WSAAsyncGetHostByName': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(916): Siehe Deklaration von 'WSAAsyncGetHostByName'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(2417) : error C2375: 'WSAAsyncGetHostByAddr': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(923): Siehe Deklaration von 'WSAAsyncGetHostByAddr'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(2440) : error C2375: 'WSACancelAsyncRequest': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(932): Siehe Deklaration von 'WSACancelAsyncRequest'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(2461) : error C2375: 'WSAAsyncSelect': Neudefinition; unterschiedliche Bindung
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock.h(934): Siehe Deklaration von 'WSAAsyncSelect'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(3910) : error C2059: Syntaxfehler: '}'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(3910) : error C2143: Syntaxfehler: Es fehlt ';' vor '}'
C:\Programme\Microsoft SDKs\Windows\v6.0A\include\winsock2.h(3910) : error C2059: Syntaxfehler: '}'
.\main.cpp(12) : error C2079: 'addr' verwendet undefiniertes struct 'sockaddr_in'
.\main.cpp(26) : error C2065: 'rc': nichtdeklarierter Bezeichner
.\main.cpp(29) : error C2440: '=': 'SOCKET (__stdcall *)(int,int,int)' kann nicht in 'SOCKET' konvertiert werden
.\main.cpp(29) : error C2440: '=': 'SOCKET (__stdcall *)(int,int,int)' kann nicht in 'SOCKET' konvertiert werden
Es gibt keinen Kontext, in dem diese Konvertierung möglich ist
.\main.cpp(29) : error C3861: "socket": Bezeichner wurde nicht gefunden.
.\main.cpp(33) : error C2228: Links von ".sin_family" muss sich eine Klasse/Struktur/Union befinden.
Typ ist 'int'
.\main.cpp(35) : error C2228: Links von ".sin_port" muss sich eine Klasse/Struktur/Union befinden.
Typ ist 'int'
.\main.cpp(35) : error C3861: "htons": Bezeichner wurde nicht gefunden.
.\main.cpp(37) : error C2228: Links von ".sin_addr" muss sich eine Klasse/Struktur/Union befinden.
Typ ist 'int'
.\main.cpp(37) : error C2228: Links von ".S_un" muss sich eine Klasse/Struktur/Union befinden.
.\main.cpp(37) : error C2228: Links von ".S_addr" muss sich eine Klasse/Struktur/Union befinden.
.\main.cpp(39) : error C2065: 'rc': nichtdeklarierter Bezeichner
.\main.cpp(39) : error C3861: "bind": Bezeichner wurde nicht gefunden.
.\main.cpp(41) : error C2065: 'rc': nichtdeklarierter Bezeichner
.\main.cpp(41) : error C3861: "listen": Bezeichner wurde nicht gefunden.
.\main.cpp(42) : error C2440: '=': 'SOCKET (__stdcall *)(SOCKET,sockaddr *,int *)' kann nicht in 'SOCKET' konvertiert werden
.\main.cpp(42) : error C2440: '=': 'SOCKET (__stdcall *)(SOCKET,sockaddr *,int *)' kann nicht in 'SOCKET' konvertiert werden
Es gibt keinen Kontext, in dem diese Konvertierung möglich ist
.\main.cpp(42) : error C3861: "accept": Bezeichner wurde nicht gefunden.
.\main.cpp(48) : error C3861: "WSAGetLastError": Bezeichner wurde nicht gefunden.
.\main.cpp(61) : error C3861: "recv": Bezeichner wurde nicht gefunden.
.\main.cpp(77) : error C2079: 'wsa' verwendet undefiniertes struct 'WSAData'
.\main.cpp(79) : error C3861: "WSAStartup": Bezeichner wurde nicht gefunden.Ich hoffe jemand kann mir da helfen. Ich habe wirklich keine Ahnung wo das herkommt

Edit: Mir fällt grade auf ich habe die Sockel nciht freigegeben. Das wird genauso, wie viele Fehlerabfragen noch eingebaut(nur falls wer meckert). Das Problem behebt es aber wohl nicht.
-
Bevor es jemand fragt. Ich bin nicht EineFrage7
Bin nur auf seinen Thread gestossen und fand das würde passen mit dem vertecken
-
Du musst die winsock.h vor der windows.h einbinden (eigentlich auch unter Vista).
Die .exe funktionier tnicht und emfielt das Programm neu zu installieren.
Such mal hier im Forum nach "vcredist" oder sowas, du musst die Runtime mitliefern oder statisch linken.
-
Gut. Ich werde das mal ausrobieren. Also unter Vitsa läuft es!
Ich werde es gleich mal ausprobierenDas mit dem vcredist ist mir noch nicht ganz klar aber ich werde mal danach suchen.
-
Also das mit dem vcredist verstehe ich wirklich cniht...
Habe hier den Link http://blog.kalmbachnet.de/?postid=80 gefunden, aber das verstehe ich jetzt weirklich cniht. Also was speziell muss ich amchen/installieren, damit ich Programme auch auf anderen PCs nutzen kann? Vllt könnte jemand so eine Art kurze Step-by-Step Anleitung machen^^Wäre wirklich sehr nett!
-
KomischerFehler schrieb:
Also was speziell muss ich amchen/installieren, damit ich Programme auch auf anderen PCs nutzen kann?
Falls du das Visual Studio bzw die Express-Version davon benutzt:
- Entweder statisch linken, findest du glaubich in den Projekt-Optionen (Rechtsklick auf's Projekt->Optionen) im Punkt "C/C++" -> "Codegenerierung".- Oder du lieferst die benötigten DLLs mit
- Oder es müssen an jedem PC, wo die DLLs fehlen, diese installiert werden (http://www.kharchi.eu/wiki/doku.php?id=cpp:faq#warum_funktioniert_meine_exe_auf_einem_anderen_pc_nicht)
-
Vielen Dannk. Also das klappt alles. Programm läuft. Aber es fährt immernoch niht runter. Ich habe bis jetzt folgende Befehle ausprobiert:
system("%systemroot%\System32\Shutdown.exe -s -f -t 0");
ExitWindowsEx(EWX_POWEROFF|EWX_FORCE,0);Beide das selbe Ergebniss Programm geht aus(Rückgabewert 0)
aber der Pc bleibt an. Noch jemand eine Idee???
-
Ich habe jetzt mit folgendem Quellcode versucht ob die Funktion allgemein geht. Auf 2 vershciedenen Rechner macht das heir auch nichts außer das Programm schließen:
#include <windows.h> #include <iostream> int main() { ExitWindowsEx(EWX_POWEROFF|EWX_FORCE,0); return 0; }Weiß einer warum diese Funktionnciht läuft und hat eine Alternative/weiß wie man das Problem behebt?
-
MSDN schrieb:
To shut down or restart the system, the calling process must use the AdjustTokenPrivileges function to enable the SE_SHUTDOWN_NAME privilege.
-
Und wie setze ich das speziell um?
-
Also bei disem beispiel, was müsste ich einfügen um das herunterfahren zu ermöglichen?
#include <windows.h>
#include <iostream>int main()
{ExitWindowsEx(EWX_POWEROFF|EWX_FORCE,0);
return 0;}
-
Ich habe über ExitWindoWEx das hier eingefügt.Bringt leider garnichts

HANDLE hToken; // handle to process token
TOKEN_PRIVILEGES tkp; // pointer to token structureBOOL fResult; // system shutdown flag
// Get the current process token handle so we can get shutdown
// privilege.if (!OpenProcessToken(GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
ErrorHandler("OpenProcessToken failed.");// Get the LUID for shutdown privilege.
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,
&tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1; // one privilege to set
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;// Get shutdown privilege for this process.
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
(PTOKEN_PRIVILEGES) NULL, 0);// Cannot test the return value of AdjustTokenPrivileges.
if (GetLastError() != ERROR_SUCCESS)
ErrorHandler("AdjustTokenPrivileges enable failed.");// Display the shutdown dialog box and start the time-out countdown.
fResult = InitiateSystemShutdown(
NULL, // shut down local computer
"Click on the main window and press \
the Escape key to cancel shutdown.", // message to user
20, // time-out period
FALSE, // ask user to close apps
TRUE); // reboot after shutdownif (!fResult)
{
ErrorHandler("InitiateSystemShutdown failed.");}
// Disable shutdown privilege.
tkp.Privileges[0].Attributes = 0;
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
(PTOKEN_PRIVILEGES) NULL, 0);if (GetLastError() != ERROR_SUCCESS)
{
ErrorHandler("AdjustTokenPrivileges disable failed.");
}If the AbortSystemShutdown function is executed in the time-out period specified by InitiateSystemShutdown, the system does not shut down. In this example, the user can prevent the system from shutting down by clicking on the application's main window and pressing the ESC key. The example processes the keystroke by calling AbortSystemShutdown.
HANDLE hToken; // handle to process token
TOKEN_PRIVILEGES tkp; // pointer to token structureBOOL fResult; // system shutdown flag
case WM_KEYDOWN:
// Process only the Escape key.
if (wParam != VK_ESCAPE)
{
break;
}// Get the current process token handle so we can get shutdown
// privilege.if (!OpenProcessToken(GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)){
ErrorHandler("OpenProcessToken failed.");
}// Get the LUID for shutdown privilege.
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,
&tkp.Privileges[0].Luid);tkp.PrivilegeCount = 1; // one privilege to set
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;// Get shutdown privilege for this process.
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
(PTOKEN_PRIVILEGES)NULL, 0);