2012-07-15 57 views
10

Visual C++ 2010でプロジェクトをコンパイルしていますが、いくつかのWinsockの再定義に問題があります。Winsock再定義エラー

私が得るすべてのファースト:

syntax error : identifier 'SOCKADDR_STORAGE' 

しかし、私はWinsockのかWINSOCK2またはws2tcpipが含まれている場合、私はこれらのような多くのエラーを取得:

error C2011: 'sockaddr' : 'struct' type redefinition 
error C2011: 'WSAData' : 'struct' type redefinition 
error C2011: 'linger' : 'struct' type redefinition 
+0

コードサンプルを投稿できますか? '#define WIN32_LEAN_AND_MEAN'を追加してみてください – ctor

+0

問題のモジュールから'#include'ブロックを見てみましょう。 – wallyk

+0

私はこれらを含んでいません。#include# #include //#私はそれらをいくつかの.cppファイルに含める必要があります。 – Cooker

答えて

20

あなたの問題はWindows.h含むことによって、あなたがしていることですすでにwinsock.hも含まれています。それはここにある、あなたの問題は、あなたがWindows.h

が付属して余分なものをたくさん含むから、コンパイラを停止含まあなたの Windows.h#define WIN32_LEAN_AND_MEANを使用することにより winsock.h

の定義の一部を再定義しようとしますwinsock2.hws2tcpip.hを含むとして生じます