我在vc6环境里创建了一个叫test的SDI项目。想用CEvent实现两条线程间的同步。
但在声明CEvent时除了问题。
如果在testview.cpp里声明一个CEvent的变量:
CEvent myEvent;
无论是全局变量还是属于某个函数的局部变量都可以编译通过。如果在testview.h里的类定义里声明,也就是给CTestView类添加一个CEvent成员变量,就失败。
代码是
public:
CEvent m_myEvent;
请教各位高手,这是什么原因?有什么办法可以给一个类添加CEvent成员变量?
谢谢!
但在声明CEvent时除了问题。
如果在testview.cpp里声明一个CEvent的变量:
CEvent myEvent;
无论是全局变量还是属于某个函数的局部变量都可以编译通过。如果在testview.h里的类定义里声明,也就是给CTestView类添加一个CEvent成员变量,就失败。
代码是
public:
CEvent m_myEvent;
请教各位高手,这是什么原因?有什么办法可以给一个类添加CEvent成员变量?
谢谢!
初始化此指针,你的app类指针=(你的App类明*)AfxGetApp(),再通过此指针访问CEvent
对象,这样访问 app类指针->CEevent对象名
HANDLE hEvent;即可.
hEvent = CreateEvent(NULL,TRUE,FALSE,NULL);
Pipi0714:你的方法应该可以,但我觉得不能从根本上解决问题。因为包含CEvent类的头文件是:afxmt.h。里面还有CMutex、CCritical等用于线程同步的类。这些类好像都不能定义成其它类的成员变量。
我以为在头文件里包含头文件一定会出现重复包含头文件的问题,所以不敢这样做。原来包含afxmt.h是没有问题的。
谢谢关心这个问题的朋友!