Moin Moin,
ich habe ein Problem mit dem zurückschreiben von Bytes in eine Datenstruktur. Sprache Borland C++.
Ich bekomme von einem Fingerabdruck Scanner nach dem Scan ein Template zurück.
Code:
typedef struct {
DWORD dwTemplateSize;
DWORD dwTemplateID;
BYTE* pbyTemplate;
} STBioTemplateEx, *PSTBioTemplateEx;
Solange ich die Bytes (BYTE* pbyTemplate) nicht weiter "anfasse kann ich diese Struktur jederzeit erzeugen und an das Gerät wieder zur Vergleich übergeben. Sprich solange alles im Speicher ist geht es ohne Probleme.
Wenn ich jedoch die Bytes in eine Datei speicher (Convertierung zu Base64) und diese wieder einlese stimmen die Daten auch noch, beim zurückschreiben in die Struktur passt es bis auf eine "kleinigkeit" auch noch alles. Wie auf dem Bild zu erkennen existieren Zwei Abdrücke 0 und 1.
Abdruck/Template 0 ist das Original was der Scanner erzeugt hat.
Abdruck/Template 1 ist die kopie die ich erstellt habe, nachdem ich die Daten gespeichert und neu geladen habe.
Auf den ersten Blick stimmen die Daten:
Abdruck 0
Code:
pbyTemplate =
:013337C0 "k>ä±\x1E&ô²sЦyD©¨\x146K9ºáh7\x11œl{Êzá½-°Ú äîöèe\x15f7‰Õ\teÙ3W(aÅ\x19\f(pË\x12ð]-3t›™Væö£)¯ÃÊÒ‘ö@VdeÉ\x0FBùdvzÅÁ\x19÷ÄxD˜±Œ„†ñ%\x05œ„~,ïÜ\nÝø`Ì$\x17\x17\x03Oxø\v Ȫ\x1Dý‹ÕA§Iõ\x05gŒýMTwt°èäu]g`\x03,ÑOAͺéäJ¬óeVûaÃ9åT]oOãcÃ.{}¥CÓ¬k\x19"
Abdruck 1
Code:
pbyTemplate =
:012D2B88 "k>ä±\x1E&ô²sЦyD©¨\x146K9ºáh7\x11œl{Êzá½-°Ú äîöèe\x15f7‰Õ\teÙ3W(aÅ\x19\f(pË\x12ð]-3t›™Væö£)¯ÃÊÒ‘ö@VdeÉ\x0FBùdvzÅÁ\x19÷ÄxD˜±Œ„†ñ%\x05œ„~,ïÜ\nÝø`Ì$\x17\x17\x03Oxø\v Ȫ\x1Dý‹ÕA§Iõ\x05gŒýMTwt°èäu]g`\x03,ÑOAͺéäJ¬óeVûaÃ9åT]oOãcÃ.{}¥CÓ¬k\x19"
Nur der Erste Block ist verändert (Das was die Liste als Wert anzeiget) aus 013337C0 wird 012D2B88. Nur warum? Irgendwie verstehe ich das Problem nicht so wirklich. Irgendwo muss es da einen Haken geben den ich übersehen habe...?
Ich hoffe, es ist einigermaßen zu verstehen...
Wäre super wenn jemand von euch eine Idee hat...
Danke &