Hallo,
Seite 1
Zitat:
Laut PDF erwartet die Funktion Scanner98x_GetScannerInfo als einzigen einen von zwei Parameter einen Zeiger auf eine Datenstruktur
Mit Alignment meine ich, das der C++-Compiler in deinem Fall alle Elemente eines Records (struct in c++)
so ausrichtet, dass er am schnellsten auf die Elemente zugreifen kann.
type
TMyRec = record
b1: Byte;
b2: Byte;
end;
Mit einem Alignment von 8 Byte sieht das intern so aus:
TMyRec = record
b1: Byte;
bDummy: Byte7;
b2: Byte;
end;
Der Record ist größer, aber auf ganze 8 Byte ist der Zugriff schneller.
Das Alignment steht in deiner PDF auf Seite 11.
Ich würde zur "Übung" mal mit der Implementierung von
Scanner98x_GetAPIVersion beginnen.
Laut PDF Seite 13 ist die Signatur
void Scanner98x_GetAPIVersion(VERSIONSSTRUCTURE * Version)
Es wird also ein Pointer auf einen Record übergeben (oder du schreibst
var davor).
Und der Record musste so aussehen
type
TVersionRec = record
Version: char[6];
SpecialProgramm: DWORD;
end;