0

Visual Studio 2008 で Windows Sockets 2 を使用するにはどうすればよいですか。プリコンパイル済みヘッダーを使用していますが、これまでに試したことは次のとおりです。

  1. StdAfx.hファイルにwinsock2.hを含めました
  2. プロジェクト設定で追加の依存関係としてWS2_32.LIBを入力しました

これらのエラーが発生します

------ Build started: Project: TestIVR, Configuration: Debug Win32 ------
Compiling...
main.cpp
c:\documents and settings\hussain\my documents\visual studio 2008\projects\testivr\testivr\main.cpp(30) : error C2065: 'WSAEVENT' : undeclared identifier
c:\documents and settings\hussain\my documents\visual studio 2008\projects\testivr\testivr\main.cpp(30) : error C2146: syntax error : missing ';' before identifier 'socketEvent'
c:\documents and settings\hussain\my documents\visual studio 2008\projects\testivr\testivr\main.cpp(30) : error C2065: 'socketEvent' : undeclared identifier
c:\documents and settings\hussain\my documents\visual studio 2008\projects\testivr\testivr\main.cpp(35) : error C2039: 'S_addr' : is not a member of 'in_addr'
        c:\program files\microsoft sdks\windows\v6.0a\include\inaddr.h(22) : see declaration of 'in_addr'
c:\documents and settings\hussain\my documents\visual studio 2008\projects\testivr\testivr\main.cpp(40) : error C2065: 'socketEvent' : undeclared identifier
c:\documents and settings\hussain\my documents\visual studio 2008\projects\testivr\testivr\main.cpp(40) : error C3861: 'WSAEventSelect': identifier not found
Build log was saved at "file://c:\Documents and Settings\Hussain\My Documents\Visual Studio 2008\Projects\TestIVR\TestIVR\Debug\BuildLog.htm"
TestIVR - 6 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

ちなみに、winsock2.hmain.cpp (main() 関数がある場所) に含めると、さまざまなエラーが発生します。

------ Build started: Project: TestIVR, Configuration: Debug Win32 ------
Compiling...
main.cpp
c:\documents and settings\hussain\my documents\visual studio 2008\projects\testivr\testivr\main.cpp(36) : error C2039: 'S_addr' : is not a member of 'in_addr'
        c:\program files\microsoft sdks\windows\v6.0a\include\inaddr.h(22) : see declaration of 'in_addr'
Build log was saved at "file://c:\Documents and Settings\Hussain\My Documents\Visual Studio 2008\Projects\TestIVR\TestIVR\Debug\BuildLog.htm"
TestIVR - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

以下は、私のStdAfx.hヘッダー ファイルの内容です。

#pragma once

#include <stdio.h>
#include <tchar.h>
#include <windows.h>
#include <winsock2.h>
4

4 に答える 4

5

あなたのin_addrの問題は、in_addrにS_addrフィールドがないという事実によって引き起こされます。in_addr.S_un.S_addr にリダイレクトする in_addr.s_addr があります。

于 2009-08-24T11:14:23.467 に答える
4

記憶によると、windows.h には winsock2.h と競合する winsock.h (つまり、ソケット v1) が含まれていると思います。を定義することでこれを防ぐことができますWIN32_LEAN_AND_MEAN:

#include <stdio.h>
#include <tchar.h>
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <winsock2.h>
于 2009-08-24T11:15:37.660 に答える
3

windows.h の前に winsock2.h を含める必要があります

于 2009-08-24T11:12:50.003 に答える
0

閲覧してみる

http://www.sockets.com/の例

于 2009-08-24T11:40:12.930 に答える