ATL中我们最关心的细节积累(2)

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 luoxiangdong 的 blog

4.atl中,我想在工作线程中触发事件,怎么办?

这里介绍最简单的办法:

cxxxatl为atl的类

cwork为工作类

static int cwork::workthread(void* p)为工作线程函数

首先让cxxxatl和cwork相互引用,即在cwork类声名前声名class cxxxatl;

给cwork添加成员指针cxxxatl* patl;

在cxxxatl类中加入工作类的实例:m_work;

在cxxxatl构造函数中加入m_work.patl=this;

cwork调用workthread时传入this指针;

在workthread中即可通过((cwork*)p)->patl.fire_xxx()

触发事件

5.为什么我定义了bool类型的接口参数在vb中却不能按照true/false选择值?

因为bool实际是int 类型的定义,应该使用variant_bool类型

6.为什么debug方式编译正确,但release方式无法正确编译,提示类似:

   creating library releasemindependency/agent.lib and object releasemindependency/agent.exp
libcmt.lib(crt0.obj) : error lnk2001: unresolved external symbol _main
releasemindependency/agent.dll : fatal error lnk1120: 1 unresolved externals
error executing link.exe.

打开工程的设置,在c/c++页中proprocess definitions中去掉_atl_min_crt即可

本文关键:ATL 多线程
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top