我使用vs2005编译MFC程序,在多线程中创建CSocket类,每当使用Create方法时出错

我使用vs2005编译MFC程序,在多线程中创建CSocket类,每当使用CSocket类的Create方法程序总会出错。我发现当我设置(程序名)属性》配置属性》常规》M... 我使用vs2005编译MFC程序,
在多线程中创建CSocket类,每当使用CSocket类的Create方法程序总会出错。

我发现当我设置 (程序名) 属性》配置属性》常规》MFC的使用 时,

当我把这个选项设置为“在共享DLL中使用MFC”时这个问题就不会出现。
当我设置为“在静态库中使用MFC“时这个问题肯定会出现,
因为我要在其他计算机上运行这个程序,所以必须设置成“在静态库中使用MFC“。
请问这是什么问题?怎么解决?谢谢。
当我设置为“在静态库中使用MFC“时,
使用CSocket类的Create方法就会出现错误并给出下列提示。

Debug Assertion Failed!

Program:(文件目录)
File:f:\rhm\vctools\vc7libs\ship\atlmfc\src\mfc\map_pp.cpp
Line:179

For information on how your program can cause an assertion
failure,see the Visual C++ documentation on asserts.

下面是“终止”、“重试”、“忽略”三个选项。

在后来的测试中错误中断在了
sockcore.cpp

void PASCAL CAsyncSocket::AttachHandle(
SOCKET hSocket, CAsyncSocket* pSocket, BOOL bDead)
{
......
-> if (pState->m_pmapSocketHandle->IsEmpty()){
...

错误报告是"程序名.exe 中的 0x00404bdf 处未处理的异常: 0xC0000005: 读取位置 0x0000000c 时发生访问冲突".

下面说的“ 把工程的编译选项设置为多进程”,请问在哪里设置?vs2005有这个选项么?
哪位高手愿意可以留下E_mail我把我的程序发给你,帮我测试一下,谢谢。
展开
 我来答
百度网友93ef279
2008-01-23 · 超过47用户采纳过TA的回答
知道小有建树答主
回答量:164
采纳率:0%
帮助的人:109万
展开全部
其实动态使用在其他计算机上也是可以到,应为win2k以上mfc动态库windows目录下也是有的。不是必须要静态库。
但是你编译的必须是release版,应为一般系统不带debug版本的mfc库。除非装了vc.
2.出问题,请把错误信息给出,帮你分析,比如编译错误,链接错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6eab688
2008-02-05 · TA获得超过4690个赞
知道大有可为答主
回答量:962
采纳率:50%
帮助的人:938万
展开全部
出现Debug Assertion Failed! 时,看一下ASSERT这个断言中的内容是什么,这样就知道出现错误的原因。
此外编译选项的“代码生成/运行时库”设置成多线程调试模式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ufokyh
2008-01-30
知道答主
回答量:32
采纳率:0%
帮助的人:29.9万
展开全部
VS2005的C++/MFC应用程序部署问题

http://hi.baidu.com/robinwjbgui/blog/item/8bb75c22363bf1a54723e871.html

完美解决方案。

你可以看一下。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百问不如一试
2008-01-30 · 超过21用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:64.8万
展开全部
把工程的编译选项设置为多进程
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式