社区
进程/线程/DLL
帖子详情
MFC 静态与动态链接的线程问题
kxgy
2003-09-11 10:40:04
使用 MFC 动态链接的程序中使用多线程时,在新建的线程中获取线程的状态正确(AfxGetModuleThreadState);而使用静态链接的则会有错。
例如使用静态链接的新线程中使用 CSocket.Attach 会出现非法访问的错误。
不知是何缘故?请高手指点!
...全文
99
4
打赏
收藏
MFC 静态与动态链接的线程问题
使用 MFC 动态链接的程序中使用多线程时,在新建的线程中获取线程的状态正确(AfxGetModuleThreadState);而使用静态链接的则会有错。 例如使用静态链接的新线程中使用 CSocket.Attach 会出现非法访问的错误。 不知是何缘故?请高手指点!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xmndragon
2003-11-20
打赏
举报
回复
我已经找到答案了,就是须在线程中初始化SOCKET;如下则不会出现错误:BOOL CConnectThread::InitInstance()
{
// TODO: perform and per-thread initialization here
if (!AfxSocketInit())
{
AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
return FALSE;
}
.......
}
xmndragon
2003-10-13
打赏
举报
回复
我也有同样的困惑,不知那位大侠能够解答.up up up
kxgy
2003-09-11
打赏
举报
回复
动态链接中 AFX_MODULE_THREAD_STATE.m_pmapDeadSockets 为有效指针,而静态链接中该值为 0。
kxgy
2003-09-11
打赏
举报
回复
VC 6.0 与 7.0 中都存在该问题!
MFC
程序
动态链接
库缺失的解决方法
本文介绍了解决
MFC
程序在不同电脑上因
动态链接
库缺失导致无法正常运行的
问题
。通过调整VS2010项目设置,将
MFC
的使用方式改为
静态
库,并调整运行库设置为多
线程
调试,最终实现程序跨电脑稳定运行。
fatal error C1189: #error : Building
MFC
application with /MD[d] (CRT dll version) requires
MFC
sha
在调试C++
MFC
程序时遇到编译错误,尝试将运行库设置为多
线程
调试(/MTd),并定义_AFXDLL,但导致新的链接错误。为解决这些
问题
,最终将运行库改为多
线程
调试(/MDd),并在项目属性中设置
MFC
为
静态
库使用,然而这引发了IWICImagingFactory和WinMain@16的外部符号链接错误。调整后的解决方案是保持运行库为
动态链接
,并统一使用
MFC
的
动态链接
方式。
在
mfc
静态
连接, 多
线程
编程时, com库, socket 的初始化, 需要在每个
线程
里对com库, socket 的初始化
本文讲述了在使用
MFC
进行socket编程时遇到的
问题
及解决方法。当从
动态链接
库切换到
静态
链接库后,需要将AfxSocketInit()初始化函数放置在
线程
函数中调用,以确保每个
线程
都有独立的状态。
VC C运行时库(CRTL)的几个版本及选用
本文探讨了在动态库和
静态
库中使用
MFC
时遇到的链接
问题
,并详细解释了不同链接方式如何影响VC运行时库的选择。通过对比单
线程
与多
线程
、
静态
链接与
动态链接
的不同特性,帮助开发者理解并正确配置项目。
MFC
DLL 与常规 DLL 对比:3 种链接方式详解及 AFX_MANAGE_STATE 使用场景
本文深入对比
MFC
DLL与常规DLL的三种链接方式(
静态
链接、
动态链接
、扩展DLL),重点解析AFX_MANAGE_STATE宏在资源加载、消息映射和
MFC
内置对话框调用中的必要性;阐明模块状态机制原理,列举资源句柄错乱、字符串加载失败等典型
问题
及调试方法,并给出工程实践中混合链接、插件系统和多
线程
场景下的关键技术决策。
进程/线程/DLL
15,465
社区成员
49,169
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章