지문인식 단말기와 통신하는 프로그램을 만드는 중입니다.
단말기와 함께 제공되는 ActiveX dll을 연동하여 프로그램하는데 VB로 된 예제파일을 참조하고 잇습니다.
그런데 bmp파일로 보관중인 지문파일을 단말기로 내려주는 과정에서 이미지 변환에서 막혔습니다.
VB 예제에서는 아래와 처리되어 있습니다.
Dim FPData1() As Byte
Dim FPData2() As Byte
Dim D4700 As TermLib.Mycom //ActiveX dll 참조
Set D4700 = New TermLib.Mycom
D4700.UserID = '12345'
D4700.FPData1 = FPData1
D4700.FPData2 = FPData2
D4700.AddNew
위 내용을 제가 Delphi로 변경한 내역은 다음과 같습니다.
function TfrmMain.funFingerBioStore(pIDNUM: String) : Integer;
var sImgFile : String;
tmpImage : TFileStream;
CountBytes : integer;
AOB : TByteArray;
tmpVar : Variant;
begin
//TermLib는 Type Library로 등록했습니다.
frmMain.TermLib1.UserID := pIDNUM;
//지문DATA 찾아서 변환
tmpVar := '';
sImgFile := frmMain.pubRunDir + 'data\' + pIDNUM + '.bmp';
if FileExists(sImgFile) then begin
tmpImage := TFileStream.Create(sImgFile, fmOpenRead);
try
countbytes := tmpImage.Read(AOB,tmpImage.Size);
DynArrayToVariant(tmpVar,AOB,TypeInfo(TByteArray));
finally
tmpImage.Free;
end;
//여기서 FPData1이라는 프로퍼티가 VB에서는 Byte(Array형태)으로 사용하는데
//델파이에서는 oleVariant로 나타나서 위와같이 변환했습니다.
TermLib1.FPData1 := tmpVar;
TermLib1.FPData2 := tmpVar;
tmpImage.Free;
end;
TermLib1.Store(1, 'User');
end;
이렇게 코딩하고 컴파일하면 정상적으로 되는데...
실행 해 보면 단말기로 지문데이터가 전송되지 못합니다...
혹시 이 문제 해결에 도움이 될 예제 또는 방법을 알려주시면 감사하겠습니다.