如何在C++ Builder中构建这个Delphi类?

Pau*_*son 1 delphi c++builder

这段代码的C++等价物是什么

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

我收到编译错误

[bcc32错误] Unit1.cpp(12907):E2285无法找到'TIESlippyMap :: TIESlippyMap()'的匹配项

在我的代码上

ImageEnview1->IEBitmap->VirtualBitmapProvider = new TIESlippyMap();
Run Code Online (Sandbox Code Playgroud)

Rem*_*eau 9

ImageEnView1->IEBitmap->VirtualBitmapProvider = new TIESlippyMap();
Run Code Online (Sandbox Code Playgroud)

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

constructor Create(provider:TIESlippyMapProvider = iesmpMapQuest; const cachePath:string = '');
Run Code Online (Sandbox Code Playgroud)

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

ImageEnView1->IEBitmap->VirtualBitmapProvider = new TIESlippyMap(iesmpMapQuest, "");
Run Code Online (Sandbox Code Playgroud)

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

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