智能感知为 CComPtr 显示不同的函数集<T>,具体取决于我使用的是点运算符还是箭头运算符

IntelliSense shows different sets of functions for CComPtr<T> depending on whether I use dot or arrow operator

本文关键字:运算符 取决于 点运算 显示 CComPtr 感知 函数 gt 智能 lt      更新时间:2023-10-16

在我的代码中有

CComPtr<SomeInterface> object;

当我使用object.时,智能感知显示了一组可用的功能。当我使用object->时,它显示了另一组可用的函数。为什么这些函数集不同?

声明如下:

CComPtr<T> object;

使用dot you访问CComPtr类的成员,例如,CComPtr.Detach()方法:

*doublePointerToT = object.Detach(); // pass ownership - calls CComPtr<T>::Detach()

和使用箭头可以获得存储的T*指针然后将箭头操作符应用于检索的T*所以你看到T的成员:

 object->QueryInterface( ... ); //calls T::QueryInterface()

点表示CComPtr类的成员函数,箭头表示T类的函数