<分区>
在我的代码中有
CComPtr<SomeInterface> object;
当我使用 object.
时,IntelliSense 会显示一组可用函数。当我使用 object->
时,它显示了另一组可用函数。为什么这些功能集不同?
标签 c++ visual-c++ com atl
<分区>
在我的代码中有
CComPtr<SomeInterface> object;
当我使用 object.
时,IntelliSense 会显示一组可用函数。当我使用 object->
时,它显示了另一组可用函数。为什么这些功能集不同?
最佳答案
有了这样的声明:
CComPtr<T> object;
使用点可以访问 CComPtr
类的成员,例如,CComPtr.Detach()
方法:
*doublePointerToT = object.Detach(); // pass ownership - calls CComPtr<T>::Detach()
并使用箭头获取存储的 T*
指针,然后将箭头运算符应用于 T*
检索,因此您会看到 T
的成员>:
object->QueryInterface( ... ); //calls T::QueryInterface()
因此,使用点可以看到 CComPtr
类的成员函数,使用箭头可以看到 T
类的函数。
关于c++ - IntelliSense 显示 CComPtr<T> 的不同函数集,具体取决于我使用的是点运算符还是箭头运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6790744/