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

来源:互联网 发布:ip广播软件 编辑:程序博客网 时间:2024/05/19 06:50

最近使用网上资源,在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;
  }

  //......

}

0 0
原创粉丝点击