以下为VB代码:'读取资料
'参数:
'bank --为EPC3为USER
'offset偏移量,EPC为4,0~3为PC码和CRC校验
'count资料byte个数,EPC个数为12
'timeout读取超时(毫秒)
'data读取数据指针
'返回值:0 成功
Public Declare Function ReadTag Lib "Test.dll"(ByVal bank As Long,Byval offset As Long,ByVal count As Long,ByVal timeout As Long,ByVal data As Long) As Integer
e.g:
Dim ret As Long
Dim epc(12) As Byte
Dim pTemp1 As Long
pTemp1 = VarPtr(epc(0))
'1 ->EPC
'4 ->EPC 存储开始位置
'12 ->EPC长度
'5000->5秒超时
ret = ReadTag(1,4,12,5000,ByVal Ptemp1)
if ret = 0 then
   editEPC.Text=ByteToHex(epc,EPC_LENGTH)
End if'写入资料
'参数:bank --1 为EPC3为USER
'offset偏移量,EPC为4,0~3为PC码和CRC校验
'count 资料byte个数,EPC个数为12
'timeout写入超时(毫秒)
'data写入数据指针
'返回值:0成功
Public Declare Function WriteTag Lib "Test.dll" (ByVal bank As Long,ByVal offset As Long,ByVal count As Long,ByVal timeout As Long,ByVal data As Long) As Integer
e.g:
Dim ret As Long
Dim epc() as Byte
Dim pTemp1 As Long
epc=TxtBinToBytes(editEPC.text)
pTemp1=VarPtr(epc(0))
ret=WriteTag(1,4,12,3000,ByVal pTemp1)
if ret<>0 then
  error...
end if

解决方案 »

  1.   

    function WriteTag( bank as Integer;offset as Integer;count as Integer;timeout as Integer; data as PByte):integer;stdcall;
      

  2.   

    //读取资料 
    //参数: 
    //bank --为EPC3为USER 
    //offset偏移量,EPC为4,0~3为PC码和CRC校验 
    //count资料byte个数,EPC个数为12 
    //timeout读取超时(毫秒) 
    //data读取数据指针 
    //返回值:0 成功 
    Function ReadTag(const bank :LongWord;const offset:Integer;const count :LongWord;const timeout:Integer;const Data :PAnsiChar):SmallInt;stdcall;external 'Test.dll';e.g: 
    var
      ret:Integer; 
      epc:array[0..12] of Byte;
      pTemp1:PAnsiChar;
      
      strTemp: AnsiString;
    begin
      pTemp1 := @epc[0]; 
      //1 ->EPC 
      //4 ->EPC 存储开始位置 
      //12 ->EPC长度 
      //5000->5秒超时 
      ret := ReadTag(1,4,12,5000,Ptemp1); 
      if ret = 0 then begin
        SetLength(strTemp,EPC_LENGTH*2);
        BinToHex(PAnsiChar(@epc[0]),PAnsiChar(strTemp),EPC_LENGTH);
        editEPC.Text:=strTemp; 
      end;
    end;
    //写入资料 
    //参数:bank --1 为EPC3为USER 
    //offset偏移量,EPC为4,0~3为PC码和CRC校验 
    //count 资料byte个数,EPC个数为12 
    //timeout写入超时(毫秒) 
    //data写入数据指针 
    //返回值:0成功 
    Function WriteTag(const bank :LongWord;const offset :Integer;const count :LongWord;const timeout:Integer;const data :PAnsiChar):SmallInt;stdcall; external 'Test.dll'
    e.g: 
    var
      ret:Integer;
      epc:Array of Byte ;
      pTemp1:PAnsiChar;
    begin
      epc:=TxtBinToBytes(editEPC.text) ;
      pTemp1:=PAnsiChar(@epc[0]); 
      ret:=WriteTag(1,4,12,3000,pTemp1) ;
      if ret <>0 then 
        error... 
    end;