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