Tekkaman

导航

 

2011年5月10日

摘要: 【ATL的三种线程模型】1、_ATL_SINGLE_THREADED2、_ATL_APARTMENT_THREADED3、_ATL_FREE_THREADED【线程模型的支持】 线程模型的支持,以类为单位,每个类提供2种功能,一个是互斥的加减,另一个是CS。1、CComSingleThreadModel2、CComMultiThreadModel3、CComMultiThreadModelNoCS【深入解析线程模型】【默认线程模型】 默认线程定义代码在atldef.h头文件中,除此之的外,以上代码在atlbase.h中,另外,CS相关部分前文已经解析。 阅读全文
posted @ 2011-05-10 18:00 Tekkaman 阅读(1803) 评论(0) 推荐(2)
 
摘要: 【ATL中的各种CriticalSection】1、CComCriticalSection,最基本CriticalSection,只是简单地包装了一下Windows CirticalSection。2、CComAutoCriticalSection,在构造和析构函数中初始化CriticalSection,不允许自由Init和Tern。3、CComSafeDeleteCriticalSection,用来保证cs不会被反复的初始化和删除,另外保证自动释放资源。亦即,你随便用吧,你忘了释放cs时,我来帮你擦屁股,你擦了的时候,我就不帮你擦了。4、CComAutoDeleteCriticalSecti 阅读全文
posted @ 2011-05-10 12:45 Tekkaman 阅读(1812) 评论(0) 推荐(2)
 
摘要: 1、在返回之前调用AddRef。 对于那些返回接口指针的函数,在返回之前应用相应的指针调用AddRef。这些函数包括QueryInterface和CreateInstance。这样当客户从这种函数得到一个接口后,它将无需调用AddRef。2、使用完接口之后调用Release。 在使用完某个接口之后应调用此接口的Release函数。3、在赋值之后调用AddRef。 在将一个接口指针赋给另一个接口指针时,应调用AddRef。换句话说,在建立接口的另一个引用之后应增加相应组件的引用计数。 阅读全文
posted @ 2011-05-10 09:09 Tekkaman 阅读(656) 评论(0) 推荐(2)