一个应用A,定义了一个类B,new了实例C,然后C中启动了一个线程D,D想引用A中视图类E中一个变量,如何才能办到?
上次有朋友说:可以在创建线程D时传递E的指针给D,
但是这个传递的指针使用前,需要转换成视图E类型的指针,那么就需要类B包含E的头文件E.h,但是E的头文件中已经包含了类B的头文件,这样互相包含,好像编译总是出错,
,如何解决?
上次有朋友说:可以在创建线程D时传递E的指针给D,
但是这个传递的指针使用前,需要转换成视图E类型的指针,那么就需要类B包含E的头文件E.h,但是E的头文件中已经包含了类B的头文件,这样互相包含,好像编译总是出错,
,如何解决?
在app里做两个函数,分别设置和获得变量的值。
视图类复杂设置变量的值,线程里去获得变量的值
不过大概都是走AfxGetApp()->GetMainWnd(),然后转化为你的frame类指针,
再GetActiveView
要是MDI的话还要GetActiveFrame
-----
class B; class A
{
B* m_pB;
};B.h中
-----
class A;class B
{
A* m_pA;
};在各自的.cpp文件再包含需要的.h文件
CreateThread(....,this,...);ULONG winapi workthread(PVOID lpparam)
{
CView *p=(CView*) lpparam;
......}
至于包含,加个#PRAGMA ONCE就ok
只要在CPP中包含对方的.h文件