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 : Sélectionner tout - Visualiser dans une fenêtre à part
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;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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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) .....
Quelqu'un a-t-il une idée de ce qui peut clocher ? Merci d'avance.
Ami calmant, J.P ;-)
Partager