Conversion Delphi -> Lazarus : problème avec callback
Bonjour,
j'ai fait une conversion d'un projet Delphi en projet Lazarus sous Windows. Tout s'est bien passé à part que j'ai un Sigsegv pendant l'appel d'une fonction en callback. Je suis en "Mode Delphi" dans les .pas
Voici des extraits du code qui me pose souci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
procedure TForm1.Button6Click(Sender: TObject);
function DoPrint(M: TMemo; Word: PChar; WordLength: Integer): Boolean;
begin
Result := False;
M.Lines.Add(Word);
end;
var
Found: TDawg;
T: Int64;
begin
Found := TDawg.Create;
try
T := PerfCounter;
FDawg.SearchCombinatoric(Edit2.Text, Found, StrToInt(Edit4.Text));
T := PerfCounter - T;
M.Lines.Add(Time(T));
M.Lines.Add(IntToStr(Found.Count) + 'combinaisons trouvées' +
' Longueur Max: ' + InttoStr(Found.Maxlen) );
T := PerfCounter;
if CB2.Checked then // anzeige
Found.Enum(@DoPrint, M);
T := PerfCounter - T;
M.Lines.Add(Time(T));
finally
Found.Free;
end;
end; |
Code:
1 2 3 4 5 6
|
TEnumWordsCallback = function(UserData: Pointer; Word: PChar; WordLength: Integer): Boolean;
function TDawg.Enum(Callback: TEnumWordsCallback; UserData: Pointer): String;
.....
if Callback(UserData, PChar(Word), StackPos)
..... |
Le souci c'est au niveau du callback : les paramètres ne sont pas bien passés à la fonction DoPrint. Je ne retrouve pas ce que je passe.
Quelqu'un a-t-il une idée de ce qui peut clocher ? Merci d'avance.
Ami calmant, J.P ;-)