[gelöst] PasccalSane Problem mit sane_get_devices

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.

[gelöst] PasccalSane Problem mit sane_get_devices

Beitragvon MacWomble » 24. Mai 2018, 18:14 [gelöst] PasccalSane Problem mit sane_get_devices

Hallo,

ich habe mich heute an Pascalsane https://www.lazarus-components.org/Comp ... scal-Sane/ versucht. Leider bekomme ich eine Fehlermeldung:

Error: Projekt Libsane Demo hat Exception-Klasse »External: SIGSEGV« ausgelöst. Bei Adresse 7FFFF7BD36C2

Code: Alles auswählen
procedure SaneGetDeviceList ( aList: TStrings ) ;
var
  x: longint;
  res: SANE_Status;
  Devicelist: ^DeviceArray;
  s: string;
begin
  //test
  res := sane_init(0, nil);
  if res = SANE_STATUS_GOOD then
     try
        res := sane_get_devices(Devicelist,SANE_FALSE); // <<<<<<<< Hier tritt der Fehler auf
        x := 0;
        if res = SANE_STATUS_GOOD then
           while Devicelist^[x] <> nil do
             begin
               s := Devicelist^[x]^.name;
               aList.Add(s);
               Inc(x);
             end;
     finally
        sane_exit;
     end;
end;                                   


Hat das eventuell schon mal jemand hin bekommen?
Zuletzt geändert von MacWomble am 25. Mai 2018, 15:09, insgesamt 1-mal geändert.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
MacWomble
 
Beiträge: 591
Registriert: 17. Apr 2008, 00:59
Wohnort: Freiburg
OS, Lazarus, FPC: Mint 19 Cinnamon / CodeTyphon Generation V Plan 6.60 | 
CPU-Target: Intel i7 64/32 Bit
Nach oben

Beitragvon Socke » 25. Mai 2018, 10:12 Re: PasccalSane Problem mit sane_get_devices

Musst du die Variable Devicelist irgendwie initalisieren?
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Socke
 
Beiträge: 2546
Registriert: 22. Jul 2008, 18:27
Wohnort: Köln
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 8.1/Debian GNU/Linux/Raspbian/openSUSE | 
CPU-Target: 32bit x86 armhf
Nach oben

Beitragvon MacWomble » 25. Mai 2018, 11:33 Re: PasccalSane Problem mit sane_get_devices

Keine Ahnung, ich habe Pascalsane von der angegebenen Stelle herunter geladen und versucht, das Demoprogramm zum Arbeiten zu bewegen.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
MacWomble
 
Beiträge: 591
Registriert: 17. Apr 2008, 00:59
Wohnort: Freiburg
OS, Lazarus, FPC: Mint 19 Cinnamon / CodeTyphon Generation V Plan 6.60 | 
CPU-Target: Intel i7 64/32 Bit
Nach oben

Beitragvon Warf » 25. Mai 2018, 12:40 Re: PasccalSane Problem mit sane_get_devices

Probier doch mal:
Code: Alles auswählen
procedure SaneGetDeviceList ( aList: TStrings ) ;
var
  x: longint;
  res: SANE_Status;
  Devicelist: DeviceArray;
  s: string;
begin
  //test
  res := sane_init(0, nil);
  if res = SANE_STATUS_GOOD then
     try
        res := sane_get_devices(@Devicelist,SANE_FALSE); // <<<<<<<< Hier tritt der Fehler auf
        x := 0;
        if res = SANE_STATUS_GOOD then
           while Assigned(Devicelist[x]) do
             begin
               s := Devicelist[x]^.name;
               aList.Add(s);
               Inc(x);
             end;
     finally
        sane_exit;
     end;
end;


Oder ist sane_get_devices call by reference? dann macht das was ich geschrieben hab keinen sinn
Warf
 
Beiträge: 984
Registriert: 23. Sep 2014, 16:46
Wohnort: Aachen
OS, Lazarus, FPC: Mac OSX 10.11 | Win 10 | FPC 3.0.0 | L trunk | 
CPU-Target: x86_64, i368, ARM
Nach oben

Beitragvon MacWomble » 25. Mai 2018, 15:08 Re: PasccalSane Problem mit sane_get_devices

Super - Danke!

So funktioniert es einwandfrei!
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
MacWomble
 
Beiträge: 591
Registriert: 17. Apr 2008, 00:59
Wohnort: Freiburg
OS, Lazarus, FPC: Mint 19 Cinnamon / CodeTyphon Generation V Plan 6.60 | 
CPU-Target: Intel i7 64/32 Bit
Nach oben

• Themenende •

Zurück zu Sonstiges



Wer ist online?

Mitglieder in diesem Forum: pluto und 5 Gäste

porpoises-institution
accuracy-worried