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;
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)
.....
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 ;-)