0

Visual C++ は初めてです。Windows XP に Visual C++ 2008 Express Edition (with SP1) をインストールしました。オープン ソースの Visual C++ プロジェクトをコンパイルしようとしています。

.vcprojVC++ 2008 Express でプロジェクトを開きました。Build > Rebuild Solution を使用すると、次の出力が表示されます。

3 error(s)
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

エラーは次の 3 つです。

error C3861: 'IN6_IS_ADDR_MULTICAST': identifier not found

error C2065: 'IPPROTO_IPV6' : undeclared identifier

error C2065: 'IPPROTO_IPV6' : undeclared identifier

私は非常に長い間グーグルをしてきました。これらの識別子は、次のファイルで利用できることがわかりました。

  • ws2tcpip.h

  • ws2def.h

  • winsock2.h

私が間違っていなければ、これらのファイルは Windows 開発者がネットワーク/ソケット プログラミングを行うために使用します。Windowsのどこかで利用できるはずです。

error C2065: undeclared identifierとはどう違いerror C3861: identifier not foundますか?

Visual C++ 2008 プロジェクトにws2tcpip.hおよびを含めるにはどうすればよいですか?ws2def.h

ありがとう

4

2 に答える 2

1

これらのヘッダーを適切なファイルに #include するのと同じくらい簡単ですか?

#include <winsock2.h>
#include <ws2tcpip.h>

winsock2.h は ws2tcpip.h の前に #include する必要があることに注意してください。そうしないと、「ip_mreq::imr_multiaddr uses undefined struc in_addr」や「Byte is not a member of in6_addr::__unnamed」などのコンパイル エラーが発生します。

于 2012-08-01T03:29:39.987 に答える