建立MFC项目时 没有选择套接字选项, 中途如何给程序添加使用套接字的功能?
起初设计中没有要求网络功能,后来改了, 加入相应的套接字代码, 但是出现问题,比如sendto 返回值总是-1,同样代码在有套接字选项的项目中工作正常。请问如何补救, 是程序可以正常使用套接字? 谢谢 !

解决方案 »

  1.   

    添加这个头文件就可以了
    #include <afxsock.h>
      

  2.   

    添加了头文件后
    使用CSocket等MFC Socket对象时,不要忘了在初始的时候加上下面的代码:
    if (!AfxSocketInit())
    {
    AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
    return FALSE;
    }
      

  3.   

    中途补救的方法就是:(我的编译环境是vs2008)
    在stdafx.h中加上 #include <afxsock.h>            // MFC 套接字扩展
    这样还是不行,还需要添加链接的库文件
    #pragma comment(lib,"winsock.lib")
    #pragma comment(lib,"ws2_32.lib")
    其实不用自己添加,在对话框初始化时候AfxSocketInit(); 这个中间就会出现包含有类似的上面两个库的语句
    可以借用上面的语句在初始话即可
    if (!AfxSocketInit())
    {
    AfxMessageBox("Failed");
    return FALSE;
    }