C2011のエラー

ソースコードを整理していると、今までは問題なかったのに、なぜかC2011のエラーが発生。

error C2011: ‘fd_set’ : ‘struct’ 型の再定義

fd_setは、winsock2.hで定義されているらしい。
しかし、winsock2.hなどは、includeしてないはずなんだけど・・・。

そして、なぜかwindows.hのincludeを外すと、エラーがなくなる。
色々調べていたら、下記のページを発見。

http://d.hatena.ne.jp/torutk/20080123/p1

winsock2.hを、windows.hより先にインクルードしないといけないらしい。

自分のプログラムをあらためて確認してみたら、使用しているライブラリが、しっかり、winsock2.hをインクルードしていました(^^;)。

そのライブラリの後で、windows.hをインクルードするようにしたら、C2011のエラーはでなくなりました。