What I know for certain, is that <winsock2.h> must be included before
<windows.h>. When I make this change, TCP build errors go away. This
is a general error of usage, actually. You see, Microsoft did a poor
job of guarding <windows.h> and other headers against collisions.
Generally speaking, <windows.h> must be after everything else.
Thus I think it is an error for "chicken.h" to be including
<windows.h>. However, before submitting such a patch to Darcs, I
thought I'd better ask what people think the consequences and
ramifications of removing <windows.h> are. I can tell you that Chicken
doesn't need it in "chicken.h" for Chicken to build. I've successfully
built on Visual Studio .NET 2003 with CMake 2.4.2 as of this afternoon.
I'm unsure of the consequences of linking to libraries or eggs or
whatnot. I'm also unsure whether anyone needs libchicken_gui to exist.
It looks like a big do-nothing but I could easily be missing some case use.