100分求助,如何正确包含 winsock2.h

来源:互联网 发布:银河铁道之夜 知乎 编辑:程序博客网 时间:2024/06/12 20:53
100分求助,如何正确包含 winsock2.h
我包含了这个就出错,从网上搜了一个winsocki.h,内容如下: 
// 
//   winsock2i.h   -   Include   winsock2.h   safely. 
// 
//   Copyleft     02/24/2005     by   freefalcon 
// 
// 
//   When   WIN32_LEAN_AND_MEAN   is   not   defined   and   _WIN32_WINNT   is   LESS   THAN   0x400, 
//   if   we   include   winsock2.h   AFTER   windows.h   or   winsock.h,   we   get   some   compiling 
//   errors   as   following: 
//       winsock2.h(99)   :   error   C2011:   'fd_set '   :   'struct '   type   redefinition 
//   
//   When   WIN32_LEAN_AND_MEAN   is   not   defined   and   _WIN32_WINNT   is   NOT   LESS   THAN   0x400, 
//   if   we   include   winsock2.h   BEFORE   windows.h,   we   get   some   other   compiling   errors: 
//       mswsock.h(69)   :   error   C2065:   'SOCKET '   :   undeclared   identifier 
//   
//   So,   this   file   is   used   to   help   us   to   include   winsock2.h   safely,   it   should   be   
//   placed   before   any   other   header   files. 
// 
  

#ifndef   _WINSOCK2API_ 

//   Prevent   inclusion   of   winsock.h 
#ifdef   _WINSOCKAPI_ 
#error   Header   winsock.h   is   included   unexpectedly. 
#endif 

//   NOTE:   If   you   use   Windows   Platform   SDK,   you   should   enable   following   definition: 
//   #define   USING_WIN_PSDK 

#if   !defined(WIN32_LEAN_AND_MEAN)   &&   (_WIN32_WINNT   > =   0x0400)   &&   !defined(USING_WIN_PSDK) 
#include   <windows.h> 
#else 
#include   <winsock2.h> 
#endif 

#endif//_WINSOCK2API_ 


这个可以用在debug办,但是release版不行。 
不知道怎么解决,急问,请各位帮忙。

------解决方案--------------------------------------------------------
在你的stdafx.h里面包含一次 
#include "winsock2.h " 
#pragma comment (lib, "ws2_32.lib) 

有#include <afxsock.h> 的话删除掉 

其他类就不用包含了 也不行么? 你的错误提示是什么? 
------解决方案--------------------------------------------------------
#include <Winsock2.h> 
#pragma comment(lib, "ws2_32.lib ") 
------解决方案--------------------------------------------------------
#include <Winsock2.h> 
#pragma comment(lib, "ws2_32.lib ") 
------解决方案--------------------------------------------------------
對 
#include <Winsock2.h> 
#pragma comment(lib, "ws2_32.lib ") 

這樣就行了。 

不要 include windows.h 
------解决方案--------------------------------------------------------
winsock2.h要包含在windows.h之前 
例如 
#include <winsock2.h> 
#include <windows.h> 
如果是 
#include <windows.h> 
#include <winsock2.h> 
就会报错