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