在C ++接口声明中使用关键字

问题描述

我正在将Direct2D d2d1_1.h 头文件移植到Delphi中,但我陷入了一个声明。我不太清楚( d2d_1.h 中的第1522行):

interface DX_DECLARE_INTERFACE("e8f7fe7a-191c-466d-ad95-975678bda998") ID2D1DeviceContext  : public ID2D1RenderTarget
{
    STDMETHOD(CreateBitmap)(
        D2D1_SIZE_U size,_In_opt_ CONST void *sourceData,UINT32 pitch,_In_ CONST D2D1_BITMAP_PROPERTIES1 *bitmapProperties,_COM_Outptr_ ID2D1Bitmap1 **bitmap
        ) PURE;    

    using ID2D1RenderTarget::CreateBitmap;       //<<<<<====== This line

    // More code deleted for simplicity
}; // ID2D1DeviceContext

在Delphi中,接口声明中没有诸如“ using ”关键字的概念。

我的问题是:我应该只是因为C ++编译器做了一些魔术而简单地忽略这一行吗?还是应该复制ID2D1RenderTarget::CreateBitmap声明?

IMO接口实际上是指向所有方法的指针的数组。因此,我想我必须从继承的接口重现声明,以便占用其插槽。

解决方法

我的问题是:我应该因为C编译器做些魔术而简单地忽略这一行,还是应该重现ID2D1RenderTarget :: CreateBitmap声明?

using声明基本上是在当前范围内引入在其他地方定义的类型。它具有允许写入CreateBitmap而不是ID2D1RenderTarget::CreateBitmap的效果。

,

从C ++移植到Delphi时,必须简单地忽略用“ using”关键字声明的方法。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...