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

翻译|其它|编辑:郝浩|2004-11-17 16:45:00.000|阅读 2176 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>


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即可


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP