2010-11-14 2 views
0

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; 
+4

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ù ... –

+0

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

Répondre

0

Causes possibles:

(1) si pFeatureSet ou modèle est nul, HTEN Res sera définie, conduisant à une exception lorsque Res.Verified est invoqué

(2) MRes.Quer yInterface est nul;

(3) DPFPVerificationResult1 est nul

Questions connexes