Je continue d'obtenir l'erreur suivante lors de l'exécution de la procédure de vérification des empreintes digitales sur le modèle Digital Persona. Je suis maintenant à bout de nerfs. Mes connaissances sont courtes et je n'ai personne vers qui me tourner. Pouvez-vous s'il vous plaît aider.Vérification de l'empreinte digitale avec Digital Persona
MESSAGE D'ERREUR
Test17.exe raised EacessViolation with message;Access violation at address 004033B7E in module ‘Test17.exe’
DELPHI 5 CODE DE FAIRE LA VÉRIFICATION
procedure TFormVerify.DPFPVerificationControl1Complete(Sender: TObject;
const pFeatureSet, pStatus: IDispatch);
var
lStr, Str1,Str2 : AnsiString; //Deserialize method
lByteArray : Variant;
lArrayPointer : Pointer;
DPFPTemplate : TDPFPTemplate; //IDispatch;
MFar : Integer; //Long integer of result archieved
MVerified : Boolean; //Result of whether finger has been verified or not
MFeatureSet : Variant; //IDispatch, Variant;
MTemplate : Variant; //IDispatch, Variant;
MRes : Variant; //TDPFPVerificationResult;
oVerificationResult : DPFPVerificationResult;
begin
// Experiment
MFeatureSet := pFeatureSet; // Dispatch cast to Variant
MTemplate := Template; // Dispatch cast to Variant
Str1 := MfeatureSet.Serialize; // Note string shows
Str2 := Mtemplate.Serialize; // Note string shows
try
if (pFeatureSet=nil) or (Template=nil) then
MessageDlg('Empty Featureset or Template!', mtInformation,[mbOk], 0)
else
Res := Ver.Verify(pFeatureSet, Template); // ERROR MESSAGE
MRes := Res;
MVerified := MRes.Verified;
MFar := MRes.QueryInterface.FARAchieved; DPFPVerificationResult1.FARAchieved;
except
on E: Exception do MessageDlg(E.Message +' : ' + IntToStr(E.HelpContext), mtInformation,[mbOk], 0);
end;
Je ne sais rien au sujet de persona numérique, ne peut donc pas vous aider. Mais: où Ver obtient-il sa valeur? Dans la ligne produisant le message d'erreur vous utilisez "Ver.Verify (...)", mais je ne vois pas Ver être déclaré, initialisé ou vérifié n'importe où ... –
Je vous suggère d'inspecter la valeur transmise comme paramètre pFeatureSet, ou le Template global ou Ver variables/fields/methods/properties. La violation d'accès se produit sur une adresse non nulle ... Je parie que c'est l'adresse où un objet déjà détruit était à la fois. pFeatureSet est une interface, mais le programme peut libérer l'objet sous-jacent avant d'appeler cette routine. Il s'applique de la même manière pour les pointeurs sur Ver et Template (s'il s'agit d'objets ou d'interfaces). – jachguate