J'ai une classe C++ que je suis en train de convertir à Delphi qui a une fonction membre varargs comme ceci:VarArgs méthode de classe erreur de conversion d'en-tête
class ICInterface {
virtual void printf(const char* fmt, ...) = 0;
};
J'ai essayé de le faire pour rendre équivalent du code Delphi afin que je puisse appeler de Delphes:
ICInterface = class
procedure printf(fmt : PAnsiChar); varargs; cdecl; abstract; virtual;
end;
Mais quand je décompiler, il me donne l'erreur:
[DCC Error] ICInterface.pas(9): E2169 Field definition not allowed after methods or properties
Qu'est-ce que Je fais mal?
Alors, il est impossible de traduire correctement une classe abstraite C++ avec une méthode varargs? –
@John: Si vous cherchez une traduction exacte, oui. Mais jetez un œil aux 'format' de Delphi,' write' et 'writeln', qui peuvent remplacer' printf', et sans les failles de sécurité que 'varargs' a tendance à apporter à votre application. –
Comme je l'ai dit, il s'agit d'une classe abstraite, donc j'écris des fonctions dans Delphi qui transmettront des pointeurs vers des classes C++ dérivées de la classe abstraite que je traduis. Je souhaite vraiment qu'il y avait un moyen de le faire :( –