2011-02-07 4 views
0

저는 학교 프로젝트를 시작했습니다. 프로그램을 시작할 때 약간의 문제가 있습니다! (가) 파일 "winsock2.h"와 "WS2TCPIP.H"입니다 포함Windows 소켓 문제!

WSADATA wsaData; 
WORD wVersionRequested = MAKEWORD(2, 2); 
int err = WSAStartup(wVersionRequested, &wsaData); 
SOCKET s = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); 

struct addrinfo *info; 
int ok = getaddrinfo("www.bt.se","80",NULL,&info); 

if(ok!=0) { 
    WCHAR * error = gai_strerror(ok); 
    printf("%s\n",error); 
} else while(info->ai_family != AF_INET && info->ai_next != NULL) 
    info = info->ai_next; 

ok = connect(s, info->ai_addr, info->ai_addrlen); 

char * message = "GET/HTTP/1.1\r\nHOST: www.bt.se\r\n\r\n"; 
ok = send(s,message,strlen(message),0); 

WSACleanup(); 

:이 (맨 끝에서) 내 코드입니다! Ovning.c

디버그는 Win32 ------

: 빌드가 시작

------ : 프로젝트 : Ovning1, 구성 내가 프로그램을 compilate 할 때 나는이 출력을 가지고

c : \ documents and settings \ fredrich \ desktop \ lokala nätverk \ ovning1 \ ovning1 \ ovning.c (16) : 경고 C4013 : 'printf'가 정의되지 않았습니다. extern 반환 int로 가정

c : \ documents 및 설정 \ fredrich \ desktop \ lokala nätverk \ ovning1 \ ovning1 \ ovning.c (22) : 오류 C2143 : 구문 오류 : 누락 된 ';' 문서 및 설정 \ 프리드리히 바탕 화면 \ \ lokala nätverk \ ovning1 \ ovning1 \ ovning.c (23) \ : 오류 C2065 : '메시지': 선언되지 않은 식별자

으로 C : \ Documents '유형'

C 전 및 설정 \ fredrich \ desktop \ lokala nätverk \ ovning1 \ ovning1 \ ovning.c (23) : 경고 C4047 : '함수': 'const char *'는 'int'의 간접 참조 수준이 다릅니다.

c : \ documents 및 설정 \ 프리드리히 바탕 화면 \ \ lokala nätverk \ ovning1 \ ovning1 \ ovning.c (23) : C4024 경고 : '전송': 다양한 유형의 형식과 실제 매개 변수에 2

으로 C : \ Documents and settin (23) : 오류 C2065 : '메시지': 선언되지 않은 식별자

c : \ documents and settings \ fredrich \ desktop \ lokala nätverk \ ovning1 \ ovning1 gs \ fredrich \ desktop \ lokala nätverk \ ovning1 \ ovning1 \ ovning.c \ Ovning.c (23) : 경고 C4047 : 'function': 'const char *'는 'int'와의 간접 레벨이 다릅니다.

c : \ documents and settings \ fredrich \ desktop \ lokala nätverk \ ovning1 \ ovning1 \ ovning.c (23) : 경고 C4024 : 'strlen': 형식 및 실제 매개 변수에 대한 여러 유형 1

========== 빌드 : 0 성공, 1 실패, 날짜, 건너 뛰기 ==========

이 오류가 발생하는 것을 알고있는 사람은 누구입니까?

답변

2

당신이 STDIO.H를 포함하지 않은 printf와의 declration 해당 파일에

0

하단에 0이 성공했다고 표시되고 1은 실패했습니다. 즉, 하나의 파일을 빌드하지 못했음을 의미합니다. 오른쪽 아래를 살펴보면 ovning.c의 오류 및 경고가 표시됩니다. 먼저 각 오류를보고 수정하십시오.

첫 번째 오류는 printf가 정의되지 않았 음을 나타냅니다. 분명히 오타, 누락 된 기능 또는 누락 된 포함이 있습니다. Tanuj가 말했듯이 stdio.h에서 printf를 사용하여 include 문을 추가하려고합니다.

다음으로 선언되지 않은 식별자에 대한 두 개의 메시지가 있습니다. 다시 말하면 누락 된 부분이있을 수 있습니다.

2

오류 C2143 : 구문 오류 : ';'이 (가) 없습니다. 앞에 'type'

C가 아니고 C++ 인 경우 블록 중간에 char * message을 선언 할 수 없습니다. 모든 변수 선언은 블록의 시작 부분에 있어야합니다. ({ 직후).