老问题,关于线程的参数传递,

i594yangyang 2004-05-01 10:54:11
Class CSplitView{
public:
CStudent student;(自己写的类)
.......
......
}
SplitThreadProc(LPVOID pParam)
{
CSplitView* pView = (CSplitView*)pParam;
pView->student.该类的函数;
.......
}
为什么会非法操作阿???
...全文
58 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
madhappy 2004-05-03
  • 打赏
  • 举报
回复
最好的办法,就是定义静态线程函数,加上定义全局变量.

CSplitView* pView;
pView=this;

SplitThreadProc(LPVOID pParam)
{
pView = (CSplitView*)pParam;
pView->student.该类的函数;
.......
}

lit_river 2004-05-03
  • 打赏
  • 举报
回复
回调函数是否声明了 CALLBACK
蒋晟 2004-05-03
  • 打赏
  • 举报
回复
MFC句柄封装类只在创建句柄的线程中有效,在其它线程中访问会出现无法预料的结果。适当的访问方式是直接访问句柄。
更多信息参见http://www.csdn.net/develop/read_article.asp?id=23171
anothervip 2004-05-02
  • 打赏
  • 举报
回复
pView->student.该类的函数;

如果这个函数是私有或者保护类型就是会出现非法访问。因为不是友元。
i594yangyang 2004-05-02
  • 打赏
  • 举报
回复
up
i594yangyang 2004-05-02
  • 打赏
  • 举报
回复
pView好像上个无效的对象,怎么回事阿
pView->student.该类的函数(public函数)
GameWeaverDummy 2004-05-01
  • 打赏
  • 举报
回复
up
max_xy 2004-05-01
  • 打赏
  • 举报
回复
检查一下pView是否指向一个有效的对象。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧