在用AppWizard创建时没有选中Windows Socket复选框,
现在程序想使用CSocket类,那该怎么办?
如果要自己添加WinSock初始化代码,那具体该怎么做??

解决方案 »

  1.   

    在InitInstance()中加上
    if (!AfxSocketInit())
    {
    AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
    return FALSE;
    }在stdafx.h中加上
    #include <afxsock.h> // MFC socket extensions
      

  2.   

    出现如下错误:
    'IDP_SOCKETS_INIT_FAILED' : undeclared identifier是不是还要改什么??
      

  3.   

    其实没什么,'IDP_SOCKETS_INIT_FAILED' ,只是一个定义好的错误消息,把
    if (!AfxSocketInit())
    {
    AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
    return FALSE;
    }
    中的AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
    改成AfxMessageBox("Windows 通信端口初始化失败。")即可
      

  4.   

    或者你加一个字符串资源,其ID 为IDP_SOCKETS_INIT_FAILED
    值为"Windows 通信端口初始化失败。"也可
      

  5.   

    在InitInstance()中加上
    WSADATA       wsd;
    if (WSAStartup(MAKEWORD(2,0), &wsd) != 0)
    {
       AfxMessageBox("WSAStartup() error");
       return; 
    }
      

  6.   

    我通过AppWizard创建了一个新的包含了windows socket的应用程序,
    比较后发现如 common_man(谢安王导) 所说的那样
    只要在resource.h文件中加入IDP_SOCKETS_INIT_FAILED  104
    就可以进行通讯了。不过我也不知道这个104是不是固定值,还是系统随机分的
      

  7.   

    应先包含winsock.h和wsock32.lib
    然后这样WSADATA wsadata;
            WSAStartup(0x0101,&wsadata);