【问题标题】:Creating digital persona fingerprint template from serialized data从序列化数据创建数字角色指纹模板
【发布时间】:2009-10-22 14:01:59
【问题描述】:

这是一个非常具体的问题,可能会为我赢得风滚草徽章,但如果可以,请回答

我已将 DigitalPersona sdk dll 作为类型库导入 Delphi,并尝试验证我已作为序列化数据存储在数据库中的指纹,它的工作非常出色。注册似乎工作正常,但我无法将指纹中的二进制数据转换回 DPFPTemplate 对象。每次尝试使用 TDPFPTemplate 对象的 defaultinterface 属性时,我都会收到 OLEException。

我想知道的是 Digital Persona 希望您如何使用他们的 SDK 来重新创建指纹。他们的指示是这样说的:

1. *从指纹数据存储子系统中检索序列化的指纹模板数据。 2.通过调用Deserialize方法反序列化一个DPFPTemplate对象(VB第40页,C++ 第 83 页)。 3. 返回一个 DPFPTemplate 对象。

制作 DPFPTemplate 的所有方法似乎只包括使用指纹读取器本身。

这是一种行不通的方法

 Result := CreateOleObject('DPFPShrX.DPFPTemplate.1') as IDPFPTemplate;
 Result.Deserialize(string(AUserFinRecPtr.FingerBuffer));

还有一个

DPFPTemplate := TDPFPTemplate.Create(nil);
DPFPTemplate.DefaultInterface.Deserialize(String(AUserFinREcPtr.FingerBuffer));

【问题讨论】:

  • 你能弹出一些代码来帮助我们提供线索吗?
  • 好主意,感谢您的关注。
  • EOleException 返回的 ErrorCode (HRESULT) 是什么?正如 ChrisBD 所说,提供一些代码。
  • 错误代码 = -2147352568,这没有多大意义,但我确实尝试捕获 EOleException 并且消息说“变量类型错误”。也许我向这个函数传递了错误的东西。过程反序列化(RawData:OleVariant);它应该获取二进制数据并生成一个指纹模板对象,我可以验证另一个指纹。
  • 好的,谢谢评论的花花公子。我认为错误实际上来自我传递给反序列化函数的东西。 “坏变量类型”现在我必须弄清楚如何获得好的数据。

标签: delphi activex fingerprint biometrics


【解决方案1】:

我发现了一个 pdf 文档,其中 Deserialize 方法是一个字节数组。您的 FingerBuffer 是一个 PAnsiChar,它是一个字节数组。但是然后你将它转换为一个自动转换为 OleString 的字符串(当你将它分配给 OleVariant 时,Delphi 将字符串转换为 OleString)。所以你不再有一个字节数组了。

你可以尝试做什么(我不会保证:)):

var
  lByteArray: Variant;
  lArrayPointer: Pointer;
  lStr: AnsiString;
  DPFPTemplate: TDPFPTemplate;
begin
  lStr := AUserFinREcPtr.FingerBuffer;
  lByteArray := VarArrayCreate([0, Length(lStr) - 1], varByte );
  lArrayPointer:= VarArrayLock(lByteArray);
  try
    Move( lStr[1], lArrayPointer^, Length(lStr) );
  finally
    VarArrayUnlock(lByteArray);
  end;
  DPFPTemplate := TDPFPTemplate.Create(nil);
  DPFPTemplate.DefaultInterface.Deserialize(lByteArray);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-29
    • 1970-01-01
    • 1970-01-01
    • 2021-09-05
    • 2017-06-04
    • 2017-05-16
    相关资源
    最近更新 更多