2011-02-07 16 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:\ドキュメントと設定\ fredrich \ desktop \ lokalanätverk\ ovning1 \ ovning1 \ ovning.c(16):警告C4013: 'printf'は未定義です。エラー:C2143:構文エラー: ''が見つかりませんでした。 \ DocumentsとSettings \ fredrich \デスクトップ\ lokalanätverk\ ovning1 \ ovning1 \ ovning.c(23):エラーC2065: 'というメッセージ':宣言されていない識別子

C:\文書

C '型' の前に'const char *'は、 'int'からの間接的なレベルが異なります。

c:\ documentsからの間接的なレベルの違いは、次のとおりです。 (C23):警告C4024:「送信」:正式なパラメータと実際のパラメータの異なるタイプ2

c:\ documentsとsettin (メッセージ):宣言されていない識別子

c:\ドキュメントと設定\ fredrich \ desktop \ lokalanätverk\ ovning1 \ ovning1 \ gs \ fredrich \ desktop \ lokalanätverk\ ovning1 \ ovning1 \ ovning.c \ Ovning.c(23):警告C4047: '関数': 'const char *'は、 'int'からの間接的なレベルが異なります

c:\ documents and settings \ fredrich \ desktop \ lokalanätverk\ ovning1 \ ovning1 \ ovning.c(23):警告C4024: 'strlen':正式なパラメーターと実際のパラメーターの異なるタイプ1

==========ビルド:0成功、1失敗、日付、0スキップ==========

これらのエラーが発生したことを知っている人は誰ですか?

答えて

2

あなたはstdio.hに含まれていませんが、printf関数のdeclrationは、そのファイルに

0

最後に0が成功し、1が失敗したと表示されます。つまり、1つのファイルをビルドできなかったということです。右側をスキャンすると、ovning.cのエラーと警告が表示されます。まず、各エラーを見て、それを修正します。

最初のエラーは、printfが未定義であることです。明らかに、タイプミス、欠落した機能、または欠落しているものがあります。 Tanuj氏によると、おそらくstdio.hのprintfを使いたいので、includeステートメントを追加します。

次に、宣言されていない識別子に関する2つのメッセージがあります。繰り返しますが、おそらく欠落があります。

2

エラーC2143:構文エラー: ';'がありません。 before 'type'

これがCでC++でない場合は、ブロックの中央にchar * messageを宣言することはできません。すべての変数宣言は、ブロックの先頭になければなりません。 ({の直後)。