ich habe eine Delphi-Unit in mein C-Builder-Projekt eingebunden und muß einer Delphi-Funktion nun eine C-Funktion übergeben. Dabei gibt es aber ein paar Schwierigkeiten, die ich nicht lösen kann. Mein Delphi-Code sieht so aus:
Code:
type Callback = procedure(s:AnsiString); procedure TestCall(fCallback:Callback);
implementation procedure TestCall(fCallback:Callback); var s:string; begin s := 'Testtext'; fCallback(s); end;
Leider kriege ich im C-Builder dafür eine Fehlermeldung:
[C++ Fehler] main.cpp(145): E2034 Konvertierung von 'void (_fastcall * (_closure )(AnsiString))(AnsiString)' nach 'void (_fastcall *)(AnsiString)' nicht möglich
[C++ Fehler] main.cpp(145): E2342 Keine Übereinstimmung des Typs beim Parameter 'fCallback' ('void (_fastcall *)(AnsiString)' erwartet, 'void (_fastcall * (_closure )(AnsiString))(AnsiString)' erhalten)