Ich dachte ich hätte dies schon mal, aber bei genaueren betrachten habe ich gesehen, das es dazumal eine procedure war. Und im jetztigen Programm eine function.
Daher habe ich diesen Test geschrieben und muss festellen, das es mit procedure geht, aber mit function hat der Compiler Mühe.
Es kommt folgender Fehler:
Code: Alles auswählen
project1.lpr(24,19) Error: Incompatible type for arg no. 1: Got "Pointer", expected "<procedure variable type of function(LongInt):LongInt;CDecl>"Oder geht dies mit FPC einfach nicht ?
Code: Alles auswählen
program project1;
type
  TProc = procedure(i: integer); cdecl;
  TFunc = function(i: integer): integer; cdecl;
  procedure InitProc(fn: TProc);
  begin
    // Ist in einer C-Lib
  end;
  procedure InitFunc(fn: TFunc);
  begin
    // Ist in einer C-Lib
  end;
  procedure proc(i: integer); cdecl;
  begin
    InitProc(@proc);
  end;
  function func(i: integer): integer; cdecl;
  begin
    InitFunc(@func); // geht nicht, Fehlermeldung
  end;
begin
  InitProc(@proc);
  InitFunc(@func);
end.

 aufgegangen.
  aufgegangen.
 Verein
Verein 
 Links
Links Suche
Suche