新手跪求,MFC中的指针问题
我写了一个小型控制台程序,然后改到MFC中。
当点击按钮时,在静态文本框中输出文字。
点击按钮是新建五个线程,线程的入口函数是全局函数,新建了一个类CPublic来存放函数。
我在创建线程时,是在主对话框中,将this指针穿进去,然后在线程的入口函数中,因为是Public类的函数,
又要在主对话框中输出内容,所以就把this指针传了进去,函数定义如下图:
将指针转变成主对话框CMFCDlg类的指针,我把文本框绑定了一个CString变量,然后将值赋给m_str,
然后调用UpdateData(false);显示文字。但是运行时出错:
但是我注释掉
pDlg->UpdateData(false);这一行代码,就可以正常运行了。
初学MFC,我搞了两天也没搞明白为什么,我尽可能把问题描述清楚,希望能够得到高人的帮助解决这个问题,谢谢大家 MFC 指针 多线程
[解决办法]
MFC 会使用线程相关的数据结构来保存一些窗口的信息. 跨线程调用就不行了. 试试不通过 MFC, 直接往窗口上发送消息或 SetDlgItemText 这样的 API 来操作看行不行.
[解决办法]
UpdateData这样的函数不能用在线程函数中
[解决办法]