Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Borland C++ Builder » Funktionszeiger

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
06.08.2005, 10:38 Uhr
~Lars
Gast


Hi,

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)

Kann mir da jemand helfen?

Viele Grüße
Lars
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
06.08.2005, 13:55 Uhr
Th



Übergeb der Delphi-Funktion eine einfache Funktion (keine Member-Funktion) bzw. eine statische Klassen-Funktion.

Also in deinem Fall sollte die C-Funktion so deklariert sein:

C++:
void f(AnsiString s); // einfache Funktion

class X
{
  static void f(AnsiString s); // statische Klassenfunktion
};

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
06.08.2005, 16:01 Uhr
~Lars
Gast


Funktioniert prächtig. Vielen Dank!

Lars
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Borland C++ Builder ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: