[gelöst] PasccalSane Problem mit sane_get_devices

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

[gelöst] PasccalSane Problem mit sane_get_devices

Beitrag von MacWomble »

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 Fr 25. Mai 2018, 16:09, insgesamt 1-mal geändert.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: PasccalSane Problem mit sane_get_devices

Beitrag von Socke »

Musst du die Variable Devicelist irgendwie initalisieren?
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: PasccalSane Problem mit sane_get_devices

Beitrag von MacWomble »

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.

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: PasccalSane Problem mit sane_get_devices

Beitrag von Warf »

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

MacWomble
Lazarusforum e. V.
Beiträge: 999
Registriert: Do 17. Apr 2008, 01:59
OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
CPU-Target: Intel i7-10750 64Bit
Wohnort: Freiburg

Re: PasccalSane Problem mit sane_get_devices

Beitrag von MacWomble »

Super - Danke!

So funktioniert es einwandfrei!
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.

Antworten