各位高人,在下有这么个问题还各位请教:
  我想做一个循环去验证密码,密码是一个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;

解决方案 »

  1.   

    我本身的想法是把我弄好的字符串转化成他的格式
    [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;现在的问题是能不能转化,如果能如何转?
      

  2.   

    key:pchar;len:integer //需要长度,因为0也可能是密码的一部分
    或key:string //string支持0-255的内容
      

  3.   

    直接强制转换就可以了 pchar(k1)
      

  4.   

    procedure TForm1.Button3Click(Sender: TObject);
    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;
    以上是正确写法
      

  5.   

    procedure TForm1.Button3Click(Sender: TObject);
    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;
    这个就不对,但是不懂为什么我传进去的格式都是一样的,就是验证不成功的呢?