Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   DelphiTwain findet keine Geräte in Delphi 10.1 - in XE4 alles ok (https://www.delphipraxis.net/209670-delphitwain-findet-keine-geraete-delphi-10-1-xe4-alles-ok.html)

mts 7. Jan 2022 20:18

AW: DelphiTwain findet keine Geräte in Delphi 10.1 - in XE4 alles ok
 
was mich aber irritiert ist dieses Video: https://www.youtube.com/watch?v=2hJnehiB_hE&t=315s

Hier benutzt jemand ebenfalls DelphiTwain mit Delphi 10.3 (http://www.kluug.net/delphitwain.php) und bei ihm läuft alles.
Was ist jetzt bei mir anders?

johndoe049 7. Jan 2022 21:55

AW: DelphiTwain findet keine Geräte in Delphi 10.1 - in XE4 alles ok
 
Zitat:

Zitat von mts (Beitrag 1500247)
was mich aber irritiert ist dieses Video: https://www.youtube.com/watch?v=2hJnehiB_hE&t=315s

Hier benutzt jemand ebenfalls DelphiTwain mit Delphi 10.3 (http://www.kluug.net/delphitwain.php) und bei ihm läuft alles.
Was ist jetzt bei mir anders?

Im verlinkten Archiv ist eine Datei anders.

Datei: DelphiTwainUtils.pas

Zeile 338: if (Value > 0) and (Value >= Count) then

In der Originaldatei steht if (Value > 0) and (Value <= Count) then

venice2 7. Jan 2022 22:26

AW: DelphiTwain findet keine Geräte in Delphi 10.1 - in XE4 alles ok
 
Ich sehe noch einige Unterschiede mehr..
Vergleich zwischen.
http://delphitwain.sourceforge.net und delphitwain-kluug-1-5--2014-06-25.zip

Unicode Version nicht geprüft.
https://stackoverflow.com/questions/...nts-for-delphi
und noch einiges hier!
https://www.delphipraxis.net/1179589-post3.html

himitsu 7. Jan 2022 23:26

AW: DelphiTwain findet keine Geräte in Delphi 10.1 - in XE4 alles ok
 
Dein Screenshot sieht mir rechts nach Anpassungen für 32- und 64-Bit aus.

mts 8. Jan 2022 09:11

AW: DelphiTwain findet keine Geräte in Delphi 10.1 - in XE4 alles ok
 
[QUOTE=mts;1500243]

Code:
var
  _Handle: HInst;
  _TwainProc: TDSMEntryProc;
  res : boolean;
  resI : integer;
  idn : TW_IDENTITY;
  newS : TW_IDENTITY;
  hndl : THandle;
begin
  _Handle := LoadLibrary('c:\Windows\twain_32.dll');;
  if (_Handle = INVALID_HANDLE_VALUE) then exit;

  _TwainProc := nil;
  @_TwainProc := GetProcAddress(_Handle, MakeIntResource(1));
  if (@_TwainProc = nil) then exit;

  idn.Id := 0;
  idn.Version.MajorNum := 0;
  idn.Version.MinorNum := 0;
  idn.Version.Language := 0;
  idn.Version.Country := 0;
  idn.Version.Info := '';
  idn.ProtocolMajor := 1;
  idn.ProtocolMinor := 9;
  idn.SupportedGroups := DG_CONTROL or DG_IMAGE;
  idn.Manufacturer := '';
  idn.ProductFamily := '';
  idn.ProductName := '';

  hndl := Handle;
  res := _TwainProc(@idn, nil, DG_CONTROL, DAT_PARENT, MSG_OPENDSM, @hndl) = TWRC_SUCCESS; //source manager loaded
  if (not res) then exit;

  newS := idn;
  newS.Id := 0;
  resI := _TwainProc(@idn, nil, DG_CONTROL, DAT_IDENTITY, MSG_GETFIRST, @newS);
  if (resI = 0) then
    ShowMessage('gut');
Das ist der komplette code, den man zum testen braucht. Wie man sieht nutze ich hier keine Funktionen aus irgendeiner Lib. Nutze nur die twain.pas header Datei.
Unter Delphi XE4 wird „gut“ ausgegeben, auf Delphi 10.1 nicht.

Es MUSS also an der TW_Identity Struktur liegen.

peterbelow 8. Jan 2022 10:27

AW: DelphiTwain findet keine Geräte in Delphi 10.1 - in XE4 alles ok
 
Da fehlt einfach zuviel notwendige Info. Wie hast Du TW_STR32 deklariert, z. B.? Sollte sowas wie array [0..31] of AnsiChar sein, nicht char...

hoika 8. Jan 2022 10:43

AW: DelphiTwain findet keine Geräte in Delphi 10.1 - in XE4 alles ok
 
Hallo,
schau Dir mal die default Alignments der beiden Delphi-Versionen an.

himitsu 8. Jan 2022 12:34

AW: DelphiTwain findet keine Geräte in Delphi 10.1 - in XE4 alles ok
 
Diese sind im Prinzip egal.

A gibt nicht die minimale, sondern die maximale Ausrichtung an,

und so lange es hier nicht um 64 Bit geht, sollte der Record überall gleich ausgerichtet werden.
* größte Felder sind 4 Byte
* kleine Felder 2 Byte und immer im Doppelpack, also auch 4



Was anders sein könnte, sind unterschiedliche Typgrößen,
wie z.B. LongInt was im Mac erschreckender Weise 8 Byte groß sein kann,
oder der eigentlich nicht existierende Typ Extended, welcher auch nicht überall gleich groß ist und den selben Typ darstellt.

venice2 8. Jan 2022 12:46

AW: DelphiTwain findet keine Geräte in Delphi 10.1 - in XE4 alles ok
 
Zitat:

Nutze nur die twain.pas header Datei.
Entschuldige!

Aber es kann doch nicht so schwer sein beide Dateien.. diese von XE4 und diese der 10.1 Version zu vergleichen.
Suche im Internet nach WinMerge (Ist frei verfügbar und open Source) Installiere das Teil und vergleiche dann beide Units mit dieser Anwendung.

Mache dir anschließend Gedanken darüber was hier eventuelle Unterschiede bewirken können.
Wir können hier letztendlich auch nur Raten.

mts 8. Jan 2022 13:17

AW: DelphiTwain findet keine Geräte in Delphi 10.1 - in XE4 alles ok
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Aber es kann doch nicht so schwer sein beide Dateien.. diese von XE4 und diese der 10.1 Version zu vergleichen.
Wir verstehen uns da falsch. Ich habe hier nicht 2 verschiedene Dateien.
Ich habe eine einzige Header-Datei (Twain.pas) und nutze 1:1 den gleichen Code in Delphi XE4 und Delphi 10.1.

Im Anhang ist mal meine Test-Anwendung.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:11 Uhr.
Seite 2 von 4     12 34      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz