各位高人,在下有这么个问题还各位请教:
我想做一个循环去验证密码,密码是一个16进制数,有个函数可以带进去不断验证就可以知道密码
函数原型是这个样子的:RFLoadKey(mode,secnr:Integer;nkey:PChar)mode是密码验证模式(已知)secnr:加密区域(已知)。剩下的就是这个密码的问题了,我想通过一个参数吧它送进去,但是不知道这个参数该如何定义。忘各路高手指点一二
具体如下:
var
temp:(这里该如何定义?)
begin //RFLoadKey(4,2,#$00#$00#$00#$00#$00#$10);正确格式
temp:=(要送的去验证的密码);
ret:=RFLoadKey(4,2,temp);
fi ret=0 then
showmessage('success') else showmessage('f');
end;
我想做一个循环去验证密码,密码是一个16进制数,有个函数可以带进去不断验证就可以知道密码
函数原型是这个样子的:RFLoadKey(mode,secnr:Integer;nkey:PChar)mode是密码验证模式(已知)secnr:加密区域(已知)。剩下的就是这个密码的问题了,我想通过一个参数吧它送进去,但是不知道这个参数该如何定义。忘各路高手指点一二
具体如下:
var
temp:(这里该如何定义?)
begin //RFLoadKey(4,2,#$00#$00#$00#$00#$00#$10);正确格式
temp:=(要送的去验证的密码);
ret:=RFLoadKey(4,2,temp);
fi ret=0 then
showmessage('success') else showmessage('f');
end;
[Error] Unit1.pas(208): Incompatible types: 'String' and 'PAnsiChar'这个是报的错.
比如说我用T:='#$';T1:='00';T2:='01'; 然后连接成字符串送给一个参数就是k1:=T+T1+T+T1+T+T1+T+T1+T+T1+T+T2;然后把K1转化一下送到temp中去
temp定义的类型是这样的temp:pchar;现在的问题是能不能转化,如果能如何转?
或key:string //string支持0-255的内容
var
nkey:pchar;
ret,tagtype,size:Integer;
snr:Longword;
begin
nkey:=#$00#$00#$00#$00#$00#$10;
ret:=Set_Port(0,254,1);
if ret=0 then
ret:=RFRequest(0,tagtype);
if ret=0 then
ret:=RFAnticoll(0,snr);
if ret=0 then
ret:=RFSelect(snr,size);
if ret=0 then
ret:=RFLoadKey(4,2,nkey);
if ret=0 then
ret:=RFAuthentication(4,2);
if ret=0 then
showmessage('验证成功');
end;
以上是正确写法
var
T1,T2,T,temp:string;
nkey:pchar;
ret,tagtype,size:Integer;
snr:Longword;
begin
T1:='00';
T2:='10';
T:='#$';
temp:=T+T1+T+T1+T+T1+T+T1+T+T1+T+T2;
nkey:=pchar(temp);
ret:=Set_Port(0,254,1);
if ret=0 then
ret:=RFRequest(0,tagtype);
if ret=0 then
ret:=RFAnticoll(0,snr);
if ret=0 then
ret:=RFSelect(snr,size);
if ret=0 then
ret:=RFLoadKey(4,2,nkey);
if ret=0 then
ret:=RFAuthentication(4,2);
if ret=0 then
showmessage('验证成功');
end;
这个就不对,但是不懂为什么我传进去的格式都是一样的,就是验证不成功的呢?