我在vc6环境里创建了一个叫test的SDI项目。想用CEvent实现两条线程间的同步。
但在声明CEvent时除了问题。
如果在testview.cpp里声明一个CEvent的变量:
CEvent  myEvent;
无论是全局变量还是属于某个函数的局部变量都可以编译通过。如果在testview.h里的类定义里声明,也就是给CTestView类添加一个CEvent成员变量,就失败。
代码是
public:
    CEvent  m_myEvent;
请教各位高手,这是什么原因?有什么办法可以给一个类添加CEvent成员变量?
谢谢!

解决方案 »

  1.   

    写到你的app类中试一下,在其它类中声明一个你app类的指针,在工程中其它类中这样
    初始化此指针,你的app类指针=(你的App类明*)AfxGetApp(),再通过此指针访问CEvent
    对象,这样访问  app类指针->CEevent对象名
      

  2.   

    定义:
    HANDLE hEvent;即可.
    hEvent = CreateEvent(NULL,TRUE,FALSE,NULL);
      

  3.   

    LittleLee兄,我试了你的方法,不行啊。
    Pipi0714:你的方法应该可以,但我觉得不能从根本上解决问题。因为包含CEvent类的头文件是:afxmt.h。里面还有CMutex、CCritical等用于线程同步的类。这些类好像都不能定义成其它类的成员变量。
      

  4.   

    我知道是什么问题了。范了一个很低级的错误。在testview.h文件里包含afxmt.h就行了。
    我以为在头文件里包含头文件一定会出现重复包含头文件的问题,所以不敢这样做。原来包含afxmt.h是没有问题的。
    谢谢关心这个问题的朋友!