activex - How to serialize DigitalPersona fingerprint template in Delphi -
i'm having big difficulty trying serialize digitalpersona fingerprint templates. don't know i'm doing wrong. i'm able deserialize template file saved demo exe distributed sdk , verify template without problems code in application
procedure tfmain.button4click(sender: tobject); var blob: array [0 .. 1632] of byte; varblob: olevariant; myfile: file; p: pointer; teste: tdpfptemplate; begin // read binary data file. if opendialog1.execute begin assignfile(myfile, opendialog1.filename); reset(myfile, 1632); blockread(myfile, blob, 1); closefile(myfile); varblob := vararraycreate([0, length(blob) - 1], varbyte); p := vararraylock(varblob); try move(blob[0], p^, length(blob)); vararrayunlock(varblob); end; if not assigned(template) begin teste := tdpfptemplate.create(self); template := teste.defaultinterface; template.deserialize(varblob); end; end;
but when try serialize template save file in application, data being written in file seems have nothing template, because checked file contents , very, different in structure. i'm doing call serialize method of idpfptemplate interface it's told on sdk docs. but, when try verify fingerprint using file generated application fingerprint cannot verified because contents of file invalid. here code serialize , save file
procedure tfmain.button3click(sender: tobject); var myfile: file; oleblob: olevariant; blob: array of byte; ubound: integer; begin {template global variable in main form set enroll process, can verify template set enroll process, i'm not able record , verify later. serialize method returns olevariant containing array of bytes} oleblob := template.serialize; if vararraydimcount(oleblob) = 1 begin ubound := vararrayhighbound(oleblob, 1); end; if ubound < 0 showmessage('template vazio') else begin blob := oleblob; assignfile(myfile, 'c:\users\leandro\desktop\teste.txt'); rewrite(myfile, 1632); blockwrite(myfile, blob, 1); closefile(myfile); end; end;
note size of template 1632 bytes, that's why array 1632 bytes long. there wrong in way i'm recording array contents on file or call sdk's serialize method generate invalid template data file?
Hello.
ReplyDeleteDid you manage to solve the problem? It's happening to me now in VB6. With SDK 2.2.3 it cannot be serialized as in 1.6.1