Hi,
I am trying to compile a C program in Visual C++ 2005 Express but I get some errors. Can someone tell me how I can resolve this?
I use the following C code:
Code:
#include <winsock2.h>
#include <windows.h>
#include <stdio.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
WORD versie;
versie = MAKEWORD ( 2, 2);
WSADATA wsaData;
int resultaat;
resultaat = WSAStartup(versie, &wsaData);
if ( resultaat != 0 ){
printf("WSAStartup error");
}
SOCKET mijnsocket;
mijnsocket = WSASocket(AF_INET, SOCK_STREAM, 0, NULL, 0, 0);
if ( socketresultaat == INVALID_SOCKET){
printf("WSASocket errror");
}
struct sockaddr_in gegevens;
gegevens.sin_family = AF_INET;
gegevens.sin_port = htons(7777);
gegevens.sin_addr.s_addr = inet_addr("127.0.0.1");
memset(&(gegevens.sin_zero), '\0', 8);
int bindresultaat;
bindresultaat = bind( mijnsocket, (struct sockaddr *) &gegevens, sizeof( struct sockaddr_in ) );
if (bindresultaat == SOCKET_ERROR ){
printf("Bind error");
}
listen(mijnsocket, 1);
accept(mijnsocket, (struct sockaddr *)&gegevens, sizeof(struct sockaddr_in));
return 0;
}
The errors are:
Code:
c:\documents and settings\tex\bureaublad\wsa2.c(13) : error C2275: 'WSADATA' : illegal use of this type as an expression
c:\program files\microsoft platform sdk\include\winsock2.h(426) : see declaration of 'WSADATA'
c:\documents and settings\tex\bureaublad\wsa2.c(13) : error C2146: syntax error : missing ';' before identifier 'wsaData'
c:\documents and settings\tex\bureaublad\wsa2.c(13) : error C2065: 'wsaData' : undeclared identifier
c:\documents and settings\tex\bureaublad\wsa2.c(14) : error C2143: syntax error : missing ';' before 'type'
c:\documents and settings\tex\bureaublad\wsa2.c(16) : error C2065: 'resultaat' : undeclared identifier
c:\documents and settings\tex\bureaublad\wsa2.c(16) : warning C4133: 'function' : incompatible types - from 'int *__w64 ' to 'LPWSADATA'
c:\documents and settings\tex\bureaublad\wsa2.c(22) : error C2275: 'SOCKET' : illegal use of this type as an expression
c:\program files\microsoft platform sdk\include\winsock2.h(98) : see declaration of 'SOCKET'
c:\documents and settings\tex\bureaublad\wsa2.c(22) : error C2146: syntax error : missing ';' before identifier 'mijnsocket'
c:\documents and settings\tex\bureaublad\wsa2.c(22) : error C2065: 'mijnsocket' : undeclared identifier
c:\documents and settings\tex\bureaublad\wsa2.c(25) : warning C4244: '=' : conversion from 'SOCKET' to 'int', possible loss of data
c:\documents and settings\tex\bureaublad\wsa2.c(27) : error C2065: 'socketresultaat' : undeclared identifier
c:\documents and settings\tex\bureaublad\wsa2.c(31) : error C2143: syntax error : missing ';' before 'type'
c:\documents and settings\tex\bureaublad\wsa2.c(34) : error C2065: 'gegevens' : undeclared identifier
c:\documents and settings\tex\bureaublad\wsa2.c(34) : error C2224: left of '.sin_family' must have struct/union type
c:\documents and settings\tex\bureaublad\wsa2.c(35) : error C2224: left of '.sin_port' must have struct/union type
c:\documents and settings\tex\bureaublad\wsa2.c(36) : error C2224: left of '.sin_addr' must have struct/union type
c:\documents and settings\tex\bureaublad\wsa2.c(37) : error C2224: left of '.sin_zero' must have struct/union type
c:\documents and settings\tex\bureaublad\wsa2.c(37) : error C2198: 'memset' : too few arguments for call
c:\documents and settings\tex\bureaublad\wsa2.c(40) : error C2143: syntax error : missing ';' before 'type'
c:\documents and settings\tex\bureaublad\wsa2.c(42) : error C2065: 'bindresultaat' : undeclared identifier
c:\documents and settings\tex\bureaublad\wsa2.c(51) : warning C4047: 'function' : 'int *' differs in levels of indirection from 'size_t'
c:\documents and settings\tex\bureaublad\wsa2.c(51) : warning C4024: 'accept' : different types for formal and actual parameter 3
Thanks for your help.
Regards,
Ben