有人碰到过没有???是不是我的设置没设好啊!!!

解决方案 »

  1.   

    一般来说,肯定是你设置有误,更可能是因为你程序的连带错误。如果装了ntddk, sdk等,可以试着调整一下工程设置中include的次序。再说是好好看看你的程序中,有关编译的一些定义,与此头文件相关的部分有无错误
      

  2.   

    加入这行:
    #pragma comment(lib, "Ws2_32.lib")
      

  3.   

    project->settings->link
    里面Object/library modules
    添加:Ws2_32.lib
      

  4.   

    那究竟是什么错呢???就那么几行,找来找去都找不到,我刚开始用的是sock1.1都没错,后来因为要用到sock2.0的一些功能,所以改用2.0,把头文件由winsock.h改为winsock2.h,输入库由wsock32.lib改为ws2_32.lib,结果一编译就跑出一大堆错。
      

  5.   

    我搞定了,把#include <winsock2.h>提到第一行就没事了,
    或者这么说:
    只要
    #include <winsock2.h>

    #include <windows.h>
    之前就OK,否则就出错。还是不知道为什么?????就因为winsock2.h里也包含了windows.h吗?那样的话winsock2.h写的兼容性也太差了。无论如何,谢谢各位,人人都有分。:)
      

  6.   

    MFC只支持winsock1.1的标准,不支持2.0的标准。所以你虽然可以用2.0的功能,却不能指望CAsyncSocket之类的使用2.0的功能。当你是用MFC Socket的时候,包含的是afxsock.h。在这个头文件里面包含的是winsock1.1的头文件(忘了文件名了,好像是winsock.h)。所以如果你是后加的 #include "winsock2.h"的话,就会出像一些定义等等的问题。解决的方法是将这一句加到 #include "afxsock.h"之前。这个时候 afxsock.h会因为winsock2.h中的定义,而略过 #include "winsock.h" 。通常这句话在你的工程文件的头文件里面,给与你工程名相同的头文件里面。