TObject::GetInterface - C++ Builder

C++ Builder 参考手册SystemTObjectGetInterface


头文件:#include <systobj.h>
命名空间:System
函数原型:

bool __fastcall GetInterface(const GUID &IID, /* out */ void *Obj);

template <typename T>
bool __fastcall GetInterface(DelphiInterface<T> &smartIntf)
{
  return GetInterface(__uuidof(T), reinterpret_cast<void*>(static_cast<T**>(&smartIntf)));
}

System::TObject::GetInterface 是 System::TObject 的成员函数,获取指定的接口。GetInterface 相当于 Delphi 里面的 as 和 C++ 里面的 dynamic_cast,但是不会抛出异常,如果指定的接口不支持。

参数:
Delphi 的 IID 允许用接口名称,编译器会自动采用类型的 GUID。
C++ 可以用模板版本的 GetInterface,相当于 dynamic_cast,GetInterface 在转为不支持的类型的时候不会抛出异常,只是得到的指针为 NULL。
参数 Obj 虽然是 void * 类型的,但是实质上是 void ** 类型的,必须把 void ** 强制转为 void * 作为 Obj 参数。

返回值:
true: 成功,通过 Obj 参数返回接口;
false: 失败。


参考:


C++ Builder 参考手册SystemTObjectGetInterface

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • C++ Builder 参考手册[//www.greatytc.com/p/d059131d1c4c] ...
    玄坴阅读 1,782评论 1 2
  • 对象的创建与销毁 Item 1: 使用static工厂方法,而不是构造函数创建对象:仅仅是创建对象的方法,并非Fa...
    孙小磊阅读 2,040评论 0 3
  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom阅读 2,729评论 0 3
  • 第01章 JAVA简介第02章 基础语法第02章 递归补充第03章 面向对象第04章 异常处理第05章 数组第06...
    顺毛阅读 527评论 0 1
  • 亲戚如期而至,夜里难受够呛。 阿弥陀福 反思:总是把事情想的过于简单。 所以总有忽略的地方。 哎哎哎,我可是做软件...
    李简晴阅读 89评论 0 0