Q&A

  • 포인트 질문입니다.

THTBioData = record
   uwLength   : LongWord;//unsigned long ulLength
   pvData     : Pointer; // void *
end;

THTFingerData = record
   htBioData    : THTBioData; //위의 레코드
   nFingerId    : Integer;
end;

THTRawData = THTBioData;

===================================================

procedure TLowEnrollForm.EnrollTimeTimer(Sender: TObject);
var
      rawData  : THTRawData;//위의 레코드
      bioData  : THTBioData;//위의 레코드
      ulInputStatus : LongWord;
      m_htRawData : THTRawData;
begin
            장치/구조체포인트/구조체포인트/상태값(무시해도됨)
   fnHTRead(m_Device, @rawData, @bioData, @ulInputStatus);

   GetMem(m_htRawData.pvData,rawData.uwLength);
   {//위에 들어간 데이터
    m_htRawData.pvData = (uwLength:0; pvData:$CDE31C)
    rawData.uwLength = (uwLength:92160; pvData:$13F008)
   }
   m_htRawData.pvData := fnHTAlloc(rawData.uwLength);//메모리할당
   m_htRawData.uwLength := rawData.uwLength;

   CopyMemory(m_htRawData.pvData,rawData.pvData,rawData.uwLength);
   {//위에 들어간 데이터
    m_htRawData.pvData = (uwLength:0; pvData:$CDE31C)
    rawData.uwLength = (uwLength:92160; pvData:$13F008)
   }
   fnHTRelease(m_htRawData.pvData);//메모리해제
  
   //자료비교 - 저장데이터/비교하기위한데이터
   fnHTMatch(@m_htBioData1, @bioData, m_nSecuLevel, @ulResult);
   {//위에 들어간 데이터
    @m_htBioData1 = (uwLength:256; pvData:$13EB48)
    @bioData = (uwLength:256; pvData:$139658)
   }

   ***
   위에 데이터가 이렇게 들어갑니다.
   실제데이터는 바이너리형태라고 하는데요.
   @bioData -> 이넘이 가지고있는 실제데이터를 디비에 저장할려고 하는데
               저기 나와있는 값을 가지고 어떻게 실데이터를 얻을 수 있는지요?
               포인터는 처음 해봐서 감이 안오네요.
               한수 알려주시기 바랍니다.
               답변(설명)부탁 드립니다. 감사합니다.
end;
0  COMMENTS