在我的代码中我有
CComPtr<SomeInterface> object;
当我使用object.
时,IntelliSense会显示一组可用的功能。当我使用object->
时,它会向我显示另一组可用的函数。为什么这些功能集不同?
答案 0 :(得分:4)
有了这样的声明:
CComPtr<T> object;
使用dot访问CComPtr
类的成员,例如CComPtr.Detach()
方法:
*doublePointerToT = object.Detach(); // pass ownership - calls CComPtr<T>::Detach()
并使用箭头获取存储的T*
指针,然后箭头操作符应用于检索到的T*
,因此您会看到T
的成员:
object->QueryInterface( ... ); //calls T::QueryInterface()
因此,使用dot,您可以看到CComPtr
类的成员函数,并且使用箭头可以看到T
类的函数。