以下是VB是的代码,请将它转换成Delphi的代码//ReadID函数申明
Private Declare Function ReadID Lib "IC500.dll" (ByRef ID As Byte) As Long
//代码
Private Sub cmdReadId_Click()
Dim lngL As Long
Dim ID(16) As Byte
lngL = ReadID(ID(0))
If lngL <> 0 Then MsgBox "error " + CStr(lngL)
txtReadId = CStr(lngL) + " "
Dim intLoop As Integer
For intLoop = 0 To 15
' txtReadId = txtReadId + CStr(AscB(Mid(ID, intLoop, 1))) + " "
txtReadId = txtReadId + CStr(Hex(ID(intLoop))) + " "
NextEnd Sub
Private Declare Function ReadID Lib "IC500.dll" (ByRef ID As Byte) As Long
//代码
Private Sub cmdReadId_Click()
Dim lngL As Long
Dim ID(16) As Byte
lngL = ReadID(ID(0))
If lngL <> 0 Then MsgBox "error " + CStr(lngL)
txtReadId = CStr(lngL) + " "
Dim intLoop As Integer
For intLoop = 0 To 15
' txtReadId = txtReadId + CStr(AscB(Mid(ID, intLoop, 1))) + " "
txtReadId = txtReadId + CStr(Hex(ID(intLoop))) + " "
NextEnd Sub
procedure cmdReadId_Click()
var
lngL :Long;
ID: array [0..15] of Byte;
intLoop: Integer;
begin
lngL := ReadID(ID[0])
If lngL <> 0 Then Showmessage('error ' + IntTOstr(lngL));
txtReadId := intToStr(lngL) + ' ';For intLoop:= 0 To 15 do
txtReadId := txtReadId + IntToStr(Hex(ID(intLoop))) + ' '
End
txtReadId := txtReadId + Format('%x',ID[intLoop])) + ' ';
End
var
lngL :LongInt;
ID: array [0..15] of byte;
intLoop: Integer;
begin
lngL := ReadID(ID[0]);
If lngL <> 0 Then begin
Showmessage('error ' + IntTOstr(lngL));
exit;
end;
txtReadId.Text:= intToStr(lngL) + ' ';For intLoop:= 0 To 15 do
txtReadId.Text := txtReadId.Text + IntToStr(ID[intLoop]) + ' ';
end;
function ReadID(pID:PByte):integer;external 'IC500.DLL';var lngL:integer;ID:array[0..15] of byte;sTmp:string;
intLoop:Integer
begin
lngL:=ReadID(@ID[0]);
if lng<>0 then ShowMessage(Format('Error %d',[lngL]));
sTmp:='';
sTmp:=Format('%d ',[lngL]);//感觉你的代码由问题,readID成功的时候返回值到底是0还是非0?
for intLoop:=0 to 15 do
sTmp:=sTmp+IntToHex(ID[intLoop],2)+' ';
txtReadID.Text:=sTmp;
end;