多媒体开发技术综合解析
1. 智能指针调用方法
智能指针在编程中有着重要的作用, SmartPointerCalls()
方法展示了如何通过函数的输出参数从函数中检索对象。这里有两种常见的方法:
- 使用智能指针对象的引用 : GetUnknownObjByRef()
函数可以直接在内部设置智能指针的值。在这种情况下, GetUnknownObjByRef()
函数使用的参数是调用函数中的实际 byRef
对象。
- 使用标准的指针到指针表示法 : CComPtr
类重载了取地址运算符 (&)
。通过获取智能指针的地址,实际上是获取了 CComPtr
所代表的底层标准(非智能)指针的地址。因此,可以使用标准的 C++ 表示法为传递给 GetUnknownObjByPtr()
函数的参数赋值。
这两种方法在实际使用中可以互换,因为它们之间的实际差异很小。
2. 线程同步辅助类
CComCritSecLock
和 CComAutoCriticalSection
这两个 ATL 类在多线程编程中用于线程同步,它们围绕标准的 Windows CRITICAL_SECTION
原语进行封装,确保不会忘记退出临界区。
-