Rubem, muito obrigado por sua ajuda.
Graças a ela consegui resolver o problema. A declaração ficou:
Function SF_Identify(var EnrollTemplate: PDWORD; Count: DWORD; var Match:
DWORD; SecurityLevel: DWORD; bCoreDetect: BOOL; Time: DWORD): DWORD;
stdcall; external 'SFR300.dll';
Obs:
O EnrollTemplate é na verdade um array com os endereços de memória onde se
encontram as digitais.
2008/4/11 Diogo de Oliveira Cunha [EMAIL PROTECTED]:
Obrigado Rubem.
Vou fazer o teste agora mesmo, espero retornar com boas notícias.
2008/4/10 Rubem Nascimento da Rocha [EMAIL PROTECTED]:
Nunca vi essa DLL e nunca trabalhei com leitores biométricos, mas pela
experiência que adquiri traduzindo chamadas de DLLs do VB pra Delphi, tente
a seguinte declaração:
function SF_Identify(var EnrollTemplate: DWORD; Count: DWORD; var Match:
DWORD;
SecurityLevel: DWORD; bCoreDetect: BOOL; Time: DWORD): DWORD; stdcall;
external 'SFR300.dll';
Depois, poste suas impressões (positivas ou negativas) na lista!
Sds.
To: delphi-br@yahoogrupos.com.br delphi-br%40yahoogrupos.com.br
From: [EMAIL PROTECTED] diogo.cunhajf%40gmail.com
Date: Thu, 10 Apr 2008 14:54:27 -0300
Subject: [delphi-br] Traduzindo de VB para Delphi
Amigos boa tarde.
Estou com o seguinte problema.
Estou desenvolvendo um software para comunicação com um leitor
biométrico de
marca suprema. A maioria das funções já esta implementada e funcionando.
Porém a função mais importante para a minhã aplicação que a função de
verificação não esta funcionando a contento.
Em contato com o suporte a integradores do representante do leitor no
Brasil, consegui apenas exemplos em VB e C++.
Estou me baseando na declaração da função em VB:
Private Declare Function SF_Identify Lib SFR300.dll (ByRef
EnrollTemplate
As Long, ByVal Count As Long, ByRef Match As Long, ByVal SecurityLevel
As
Long, ByVal bCoreDetect As Long, ByVal Time As Long) As Long
que é chamada da seguinte forma:
SF_Identify(Buffer(0), 10, Match, 3, 0, 0), onde o array buffer contêm
os
endereços na memória onde estão armazenadas as digitais.
e a respectiva declaração em Delphi (não sei se está certa):
Function SF_Identify(Var EnrollTemplate: Array of PByteArray; Count:
Longint;Var Match: integer; SecurityLevel: Longint; bCoreDetect:
Longint;
Time: Longint): Longint; stdcall; external 'SFR300.dll';
e é chamada da seguinte forma:
SF_Identify(Buffer[0], 10, Pos, 4, 0, 0);, o array buffer tem a mesma
a
mesma que função que acima.
O problema é que no Delphi a função nunca dá o retorno esperado, neste
caso,
retorna sempre 0(zero) o que significa falha na verificação.
Alguém saberia me dizer se estou declarando a função no delphi de forma
errada ou passando algum parâmetro de forma incorreta.
--
Não te esqueças de que o arado, dilacerando o solo, acaba igualmente
desmantelado e ferido, entretanto, desse choque de forças surge o pão
que te
supre a mesa.
[As partes desta mensagem que não continham texto foram removidas]
__
Receba GRÁTIS as mensagens do Messenger no seu celular quando você
estiver offline. Conheça o MSN Mobile!
http://mobile.live.com/signup/signup2.aspx?lc=pt-br
--
Não te esqueças de que o arado, dilacerando o solo, acaba igualmente
desmantelado e ferido, entretanto, desse choque de forças surge o pão que te
supre a mesa.
--
Não te esqueças de que o arado, dilacerando o solo, acaba igualmente
desmantelado e ferido, entretanto, desse choque de forças surge o pão que te
supre a mesa.
[As partes desta mensagem que não continham texto foram removidas]