我在一个mfc程序里面建了一个类CPingServer,使用原始套接字去ping服务器,但是编译时不能识别winsock2的函数(wsasocket。。),#include winsock2又提示重定义错误。
请问该怎么办?

解决方案 »

  1.   

    在project->settings->object/library modules内加上; ws2_32.lib
      

  2.   

    #include "Winsock2.h"
    和默认的SOCKET头文件冲突了吧。
    把STDAFX里面的 #include <afxsock.h> 去掉。
    还有
    BOOL *::InitInstance()里面的
    if (!AfxSocketInit())
    {
    AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
    return FALSE;
    }
    也去掉,自己添加
    #include "Winsock2.h"
    以及SOCKET初始化函数。
      

  3.   

    你在创建工程的时候没有选支持Socket,解决办法就是手工加入即可
      

  4.   

    使用了MFC 里使用CSocket类就可以了
    使用winsock函数不是有点多余么
    要么你就使用API要么就使用MFC
    不要整混了
      

  5.   

    Winsock API的功能强大多了,楼上的想偷懒,那就只能做简单的网络通讯程序;呵呵Good Luck
      

  6.   

    我是要用winsock 2 的函数,有些函数winsock1不支持的!
    多谢everforever,用你的方法问题解决了!to mattrew(小耗子):
    你用CSocket可以创建原始套接字吗?