VS2008下解决release版的工程在使用CSocket 调用create函数时出错的bug

    xiaoxiao2021-12-14  18

    最近使用网上资源,在VS2008环境下编写FTP 服务器端程序的功能,但是碰到运行时访问越界的问题,在网上查到了解决办法,现在记录下来:

    共享库,编译程序Debug版的运行正常,一换到Release版就会在sockcore.cpp的  CAsyncSocket::AttachHandle函数中运行到

    if (pState->m_pmapSocketHandle->IsEmpty()) 处报访问越界导致程序崩溃。原因应该是release版socket没进行初始化的话,系统没有赋初值,在

    应用程序源文件的InitInstance()中调用AfxSocketInit()进行初始化即可。

    CSocket create 套接字失败,原因没有初始化套接字。

       BOOL CFTPServerApp::InitInstance() {

        //.......

       //加入下面代码:   if (!AfxSocketInit())  {    AfxMessageBox("套接字初始化失败!");    return FALSE;   }

      //......

    }

    转载请注明原文地址: https://ju.6miu.com/read-965460.html

    最新回复(0)