我有一个C++类,正在将其转换为具有这样的varargs成员函数的Delphi:

class ICInterface {
    virtual void printf(const char* fmt, ...) = 0;
};

我尝试这样做以制作等效的Delphi代码,因此可以从Delphi调用它:
ICInterface = class
    procedure printf(fmt : PAnsiChar); varargs; cdecl; abstract; virtual;
end;

但是当我编译时,它给了我错误:
[DCC Error] ICInterface.pas(9): E2169 Field definition not allowed after methods or properties

我究竟做错了什么?

最佳答案

目前尚不清楚您要做什么。

如果您需要C++代码的Delphi类似物

class ICInterface {
    virtual void printf(const char* fmt, ...) = 0;
};

它是
ICInterface = class
    procedure printf(fmt : PAnsiChar; const args: array of const); virtual; abstract;
end;

但是它与C++代码不二进制兼容。

如果您使用C++编写的DLL可以导出C++类,则不能直接在Delphi中使用此DLL。

10-08 09:23