老问题,关于线程的参数传递,
Class CSplitView{
public:
CStudent student;(自己写的类)
.......
......
}
SplitThreadProc(LPVOID pParam)
{
CSplitView* pView = (CSplitView*)pParam;
pView->student.该类的函数;
.......
}
为什么会非法操作阿???
问题点数:50、回复次数:8Top
1 楼max_xy(夏平生)回复于 2004-05-01 23:11:20 得分 8
检查一下pView是否指向一个有效的对象。Top
2 楼GameWeaverDummy(小白菜)回复于 2004-05-01 23:42:26 得分 0
upTop
3 楼i594yangyang(小思)回复于 2004-05-02 11:14:57 得分 0
upTop
4 楼anothervip(Never ending... ...)回复于 2004-05-02 12:11:29 得分 8
pView->student.该类的函数;
如果这个函数是私有或者保护类型就是会出现非法访问。因为不是友元。Top
5 楼i594yangyang(小思)回复于 2004-05-02 19:22:34 得分 0
pView好像上个无效的对象,怎么回事阿
pView->student.该类的函数(public函数)Top
6 楼jiangsheng(蒋晟.Net[MVP])回复于 2004-05-03 15:48:50 得分 8
MFC句柄封装类只在创建句柄的线程中有效,在其它线程中访问会出现无法预料的结果。适当的访问方式是直接访问句柄。
更多信息参见http://www.csdn.net/develop/read_article.asp?id=23171Top
7 楼lit_river(小河)回复于 2004-05-03 15:57:39 得分 8
回调函数是否声明了 CALLBACKTop
8 楼madhappy(545454)回复于 2004-05-03 16:19:40 得分 18
最好的办法,就是定义静态线程函数,加上定义全局变量.
CSplitView* pView;
pView=this;
SplitThreadProc(LPVOID pParam)
{
pView = (CSplitView*)pParam;
pView->student.该类的函数;
.......
}
Top




