我使用vs2005编译MFC程序,
在多线程中创建CSocket类,每当使用CSocket类的Create方法程序总会出错。
我发现当我设置 (程序名) 属性》配置属性》常规》MFC的使用 时,
当我把这个选项设置为“在共享DLL中使用MFC”时这个问题就不会出现。
当我设置为“在静态库中使用MFC“时这个问题肯定会出现,
因为我要在其他计算机上运行这个程序,所以必须设置成“在静态库中使用MFC“。
请问这是什么问题?怎么解决?谢谢。
当我设置为“在静态库中使用MFC“时,
使用CSocket类的Create方法就会出现错误并给出下列提示。
在后来的测试中错误中断在了
sockcore.cpp
void PASCAL CAsyncSocket::AttachHandle(
SOCKET hSocket, CAsyncSocket* pSocket, BOOL bDead)
{
......
-> if (pState->m_pmapSocketHandle->IsEmpty()){
...
上
错误报告是"程序名.exe 中的 0x00404bdf 处未处理的异常: 0xC0000005: 读取位置 0x0000000c 时发生访问冲突".
我使用vs2005编译MFC程序,在多线程中创建CSocket类,每当使用Create方法...
CSocket类不稳定,经常出错,建议你直接使用Windows API的SOCKET套接字