动态库大意是一个用于网络查询的对话框,对话框初始化的时候要创建一个socket对象,代码如下:
m_pSock=new SockClient(this);
if (!m_pSock->Create())
{
AfxMessageBox("Socket创建失败!!!!!!");
m_bSvrState=false;
}
else
{
if(!m_pSock->Connect(strSvrAddress, nPort))
{
AfxMessageBox("Socket连接失败");
m_bSvrState=false;
}
else
{
m_bSvrState=true;
m_pSock->Initialize(); //初始化CSocket中的变量
}
}
我也设定了一个导出函数:extern AFX_EXTENSION_MODULE DataClientDLL;#ifdef PNS_IMPL
#define MYDECLARE_PNS _declspec(dllexport)
#else
#define MYDECLARE_PNS _declspec(dllimport)
#endifextern MYDECLARE_PNS SockClient *m_pSock;但是在调用这个dll时,弹出“Socket创建失败!!!!!!”,
PS:我已经设置了一个指针来调用对话框,但是一直没有办法在创建对话框的时候创建socket;
实在不知道为什么,请各位大虾帮帮忙,谢谢啦!!
m_pSock=new SockClient(this);
if (!m_pSock->Create())
{
AfxMessageBox("Socket创建失败!!!!!!");
m_bSvrState=false;
}
else
{
if(!m_pSock->Connect(strSvrAddress, nPort))
{
AfxMessageBox("Socket连接失败");
m_bSvrState=false;
}
else
{
m_bSvrState=true;
m_pSock->Initialize(); //初始化CSocket中的变量
}
}
我也设定了一个导出函数:extern AFX_EXTENSION_MODULE DataClientDLL;#ifdef PNS_IMPL
#define MYDECLARE_PNS _declspec(dllexport)
#else
#define MYDECLARE_PNS _declspec(dllimport)
#endifextern MYDECLARE_PNS SockClient *m_pSock;但是在调用这个dll时,弹出“Socket创建失败!!!!!!”,
PS:我已经设置了一个指针来调用对话框,但是一直没有办法在创建对话框的时候创建socket;
实在不知道为什么,请各位大虾帮帮忙,谢谢啦!!
加入
if(!AfxSocketInit())
AfxMessageBox("Failed to Initialize Sockets",MB_OK| MB_ICONSTOP);
DLL中要用AFX_MANAGE_STATE(AfxGetStaticModuleState());来允许MFC函数的调用.
if (!m_pSock->Create())
运行完这句CSocket::Create returned 1 ,现实Socket建立,以前一直返回0。
但是接着就弹出警告!
估计是AFX_MANAGE_STATE(AfxGetStaticModuleState());没加的问题。不知道要加到哪里?
{
CWinApp::InitInstance();
AFX_MANAGE_STATE(AfxGetStaticModuleState());if(!AfxSocketInit())
AfxMessageBox("Failed to Initialize Sockets",MB_OK| MB_ICONSTOP); return TRUE;
}