c++ - IntelliSense 显示 CComPtr<T> 的不同函数集,具体取决于我使用的是点运算符还是箭头运算符

标签 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/

相关文章:

c++ - MFC COleControl::DoPropExchange 在哪里存储持久属性?

c++ - 二维可变大小数组 C++

C++,指向整数比较错误的指针

c# - 从 C# 调用 C++/CLI 代码

c++ - 重新分配 std::map::value_type& 是否安全?

image - 优化校准背景是灰色的,我想要白色的

visual-studio-2010 - 在Visual C++中比较图像和视频

python - 从Word.Application对象获取Document对象时,其成员不会从gencache缓存中填充,而VBSEdit可以获取它们

c# - 如何确保同一线程将调用服务器计算机中的 com+ 组件

c++ - 在 C++ 中访问 COM 接口(interface)的问题