delphi - 如何在 C++Builder 中构造这个 Delphi 类?

标签 delphi c++builder

此代码的 C++ 等效项是什么

ImageEnView1.IEBitmap.VirtualBitmapProvider := TIESlippyMap.Create();

我收到编译错误

[bcc32 Error] Unit1.cpp(12907): E2285 Could not find a match for 'TIESlippyMap::TIESlippyMap()'

在我的代码

ImageEnview1->IEBitmap->VirtualBitmapProvider = new TIESlippyMap();

最佳答案

ImageEnView1->IEBitmap->VirtualBitmapProvider = new TIESlippyMap();

更新:您正在尝试调用此构造函数:

constructor Create(provider:TIESlippyMapProvider = iesmpMapQuest; const cachePath:string = '');

您收到的编译器错误意味着 C++ 编译器找不到没有参数的构造函数,或者至少找不到参数都分配有默认值的构造函数。根据您使用的 C++Builder 版本,在为类生成 C++ .hpp 文件时,其中包含的 Delphi 编译器很可能不会发出默认参数值。较旧的 Delphi 编译器版本无法正确执行此操作,但较新版本可以。在这种情况下,听起来您正在使用受影响的版本,因此您必须明确填写这些参数值:

ImageEnView1->IEBitmap->VirtualBitmapProvider = new TIESlippyMap(iesmpMapQuest, "");

或者编辑 .hpp 文件以正确包含默认值:

class TIESlippyMap : public ...
{
...
public:
    __fastcall TIESlippyMap(TIESlippyMapProvider provider = iesmpMapQuest, const String cachePath = "");
...
};

关于delphi - 如何在 C++Builder 中构造这个 Delphi 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15397693/

相关文章:

c++ - 在 Borland C++Builder XE 下编译旧的 C++ 类

c++ - 是否有可能获得由 'new' 分配的内存块大小?

delphi - 如何使用 TSQLConnection/dbExpress 将一个数据库的表复制到另一个数据库的对应表?

class - `Class of `类型声明的含义是什么?

delphi - 数据浏览器中缺少SQLite选项

delphi - 我的美国 Ini 文件可以与欧洲格式浮点一起使用吗

delphi - 如何使用 BSTR 的 SAFEARRAY 显示 VARIANT 中的值

delphi - 如何声明一个常量Tpoint?

delphi - Delphi-维护对对象的 self 引用

delphi - TForm 上的 RTTI GetFields 和 GetAttributes