1

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

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

我得到一个编译错误

[bcc32 错误] Unit1.cpp(12907): E2285 找不到“TIESlippyMap::TIESlippyMap()”的匹配项

在我的代码上

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

1 回答 1

9
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 = "");
...
};
于 2013-03-13T22:28:09.563 回答