关于CEvent的声明问题

szjso 2004-07-30 01:04:54
我在vc6环境里创建了一个叫test的SDI项目。想用CEvent实现两条线程间的同步。
但在声明CEvent时除了问题。
如果在testview.cpp里声明一个CEvent的变量:
CEvent myEvent;
无论是全局变量还是属于某个函数的局部变量都可以编译通过。

如果在testview.h里的类定义里声明,也就是给CTestView类添加一个CEvent成员变量,就失败。
代码是
public:
CEvent m_myEvent;
请教各位高手,这是什么原因?有什么办法可以给一个类添加CEvent成员变量?
谢谢!
...全文
649 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
szjso 2004-07-30
  • 打赏
  • 举报
回复
我知道是什么问题了。范了一个很低级的错误。在testview.h文件里包含afxmt.h就行了。
我以为在头文件里包含头文件一定会出现重复包含头文件的问题,所以不敢这样做。原来包含afxmt.h是没有问题的。
谢谢关心这个问题的朋友!
jazy 2004-07-30
  • 打赏
  • 举报
回复
可以定义啊,这样很正常的。你把错误详细信息拷出来大家瞧瞧?
szjso 2004-07-30
  • 打赏
  • 举报
回复
LittleLee兄,我试了你的方法,不行啊。
Pipi0714:你的方法应该可以,但我觉得不能从根本上解决问题。因为包含CEvent类的头文件是:afxmt.h。里面还有CMutex、CCritical等用于线程同步的类。这些类好像都不能定义成其它类的成员变量。
Pipi0714 2004-07-30
  • 打赏
  • 举报
回复
定义:
HANDLE hEvent;即可.
hEvent = CreateEvent(NULL,TRUE,FALSE,NULL);
LittleLee 2004-07-30
  • 打赏
  • 举报
回复
写到你的app类中试一下,在其它类中声明一个你app类的指针,在工程中其它类中这样
初始化此指针,你的app类指针=(你的App类明*)AfxGetApp(),再通过此指针访问CEvent
对象,这样访问 app类指针->CEevent对象名

15,471

社区成员

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

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