AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Tesseract.dll unter Delphi einbinden
Thema durchsuchen
Ansicht
Themen-Optionen

Tesseract.dll unter Delphi einbinden

Ein Thema von Gravitar · begonnen am 24. Feb 2013 · letzter Beitrag vom 25. Feb 2013
Antwort Antwort
Gravitar

Registriert seit: 8. Okt 2006
94 Beiträge
 
Delphi 7 Enterprise
 
#1

Tesseract.dll unter Delphi einbinden

  Alt 24. Feb 2013, 14:30
Hi,

versuche gerade die libtesseract302.dll in Delphi einzubinden.

Über folgenden Code erfolgt (in einer eigenen Unit) die Einbindung:
Delphi-Quellcode:
procedure LoadTessDLL;
begin
  if TessDLLLoaded then Exit;
  ErrorMode := SetErrorMode($8000{SEM_NoOpenFileErrorBox});
  DLLHandle := LoadLibrary('libtesseract302.dll');
  if DLLHandle >= 32 then
  begin
    TessDLLLoaded := True;
    SaveExit := ExitProc;
    ExitProc := @NewExit;
// @TessDllAPI := GetProcAddress(DLLHandle,'TessDllAPI');
// Assert(@TessDllAPI <> nil);

    @TessDllBeginPage := GetProcAddress(DLLHandle,'TessDllBeginPage');
    Assert(@TessDllBeginPage <> nil);
Das Laden scheint zu funktionieren (jedenfalls, nachdem ich noch die liblept168.dll von Leptonia in das gleiche Verzeichnis kopiert habe).

Leider crasht das Programm bei dem Assert(@TessDllBeginPage)

Scheinbar liegt hier ein falscher Funktionsname bzw. Definition in der Procedure vor. Aber wie komme ich an die korrekten Funktionsnamen inkl. Parameter dieser DLL heran?

Habe mich auf google/code schon einen Wolf gesucht.

Hat jemand dieses Problem schon für Delphi gelöst?
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: Tesseract.dll unter Delphi einbinden

  Alt 24. Feb 2013, 14:42
Naja du solltest vllt. schon ein bisschen mehr über die besagte dll Preisgeben. Damit die Leute auch wissen, wozu diese ist. Ich zB. weiß das nicht. Aber da bin ich vllt. ja auch der Einzige


Naja auf die schnelle jedenfalls, habe ich das finden können:

http://code.google.com/p/tesseract-o.../detail?id=362


auf der Seite scheint es ne Menge um die besagte API zu geben. Ohne zu wissen vozu die überhaupt ist, kann man natürlich wenig dazu sagen
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
vagtler

Registriert seit: 9. Jul 2010
Ort: Köln
667 Beiträge
 
Delphi 2010 Professional
 
#3

AW: Tesseract.dll unter Delphi einbinden

  Alt 24. Feb 2013, 15:17
Naja du solltest vllt. schon ein bisschen mehr über die besagte dll Preisgeben. Damit die Leute auch wissen, wozu diese ist. Ich zB. weiß das nicht. Aber da bin ich vllt. ja auch der Einzige [...]
Tatsächlich hat Tesseract in den letzten mittlerweile 28(!) Jahren einen gewissen Bekanntheitsgrad erreicht, so dass es sogar in der deutschsprachigen Wikipedia zu einem Eintrag gereicht hat: http://de.wikipedia.org/wiki/Tesseract_(Software)
  Mit Zitat antworten Zitat
Gravitar

Registriert seit: 8. Okt 2006
94 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: Tesseract.dll unter Delphi einbinden

  Alt 25. Feb 2013, 09:48
Naja auf die schnelle jedenfalls, habe ich das finden können:

http://code.google.com/p/tesseract-o.../detail?id=362


auf der Seite scheint es ne Menge um die besagte API zu geben. Ohne zu wissen vozu die überhaupt ist, kann man natürlich wenig dazu sagen
Puh , irgendwie scheint es so zu sein, dass Tesseract (übrigens eine OCR-Engine) ab 3.0 keine C-DLL liefert sondern auf C++ umgestiegen ist und die DLL mit Klassen arbeitet. Damit ist die Nutzung der DLL aus Delphi nicht mehr möglich (Stichwort name mangling). Dies gilt aber auch für Java, Phyton usw.

Scheinbar gibt es Diskussionen einen C-Wrapper um die C++-DLL zu legen, der dann wieder Standard-C-Funktionen bereitstellt. Aber so richtig schlau bin ich nicht draus geworden, ob das jemand jetzt macht oder nicht, wo diese DLL dann zu besorgen ist usw.

Vermutlich ist es deutlich einfacher über die Kommandozeile mit Tesseract zu kommunizieren (ShellExecute) und einfach die einzelnen JPGs als Datei zu übergeben.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz