我该如何处理c++中指向接口指针的指针呢?
What do I do with a pointer to a pointer to an interface in C++
我是c++的新手,我正在调用一个具有以下定义的windows函数:
HRESULT getElementById(BSTR v, IHTMLElement **pel)
所以我有以下用法:
CComBSTR v = "myid";
IHTMLElement** element;
HRESULT hr = pDocument->getElementById(v, element);
现在我该怎么做才能使元素对我有用呢?
我想了解元素的属性和方法,但是不知道怎么做
谁来帮帮忙。
这很可能是调用函数的错误方式。getElementById
函数接受指向指针的指针,因为它模拟了通过引用传递的,并且将写入函数内部的解引用指针。因为你传递了一个未初始化的指针,你将得到未定义的行为,并且可能导致崩溃。
你应该做的是声明一个单指针变量,并传递一个指向该变量的指针。像
CComBSTR v = "myid";
IHTMLElement* element;
HRESULT hr = pDocument->getElementById(v, &element);
关于如何获取属性等,我建议您阅读IHTMLElement
的参考资料。也许还可以搜索教程或示例?
相关文章:
- 如何模板化堆栈分配的多态指针数组到接口,包括派生类型的相应点?
- 如何使用接口指针调用方法,该指针是其具体类的一部分,而不是接口的一部分
- 在接口中使用通用指针的原因/正确情况是什么
- 在接口文件中使用模板时出现"not a type"错误的函数指针
- 静态声明专用类的接口指针数组
- 指向模板接口的唯一指针
- 为什么在将多态行为与指向接口的指针一起使用时没有调用析构函数?
- 为什么在取消引用的指向接口的指针上使用赋值运算符不是编译器错误
- 如何找到C 接口指针的地址
- 指向接口 C++ 的指针
- 使用基类指针 - cpp 的适当声明设计接口
- 使用带有COM接口的STL智能指针
- 使用抽象接口C++ dll 边界 -标头中的智能指针>?叫删除?
- 将指向COM接口指针的指针从托管c++传递到.NET c#
- 当从一个应用程序调用时,在DLL方法中创建COM接口指针是有效的,但当从另一个应用软件调用时则无效
- 创建 COM 接口指针在开发计算机上有效,但会导致其他计算机上的应用程序崩溃
- C++ 当函数 arg 类型为类接口时,无法传递对指针的引用
- 如何在C#中使用C++DLL导出的接口指针
- 如何将共享_ptr用于com接口指针
- 如何获取 LPDISPATCH 指针/接口并将其传递给 activeX 控件