Pchar是指针类型,它是一个指向字符串的指针,和Char、String不同。
Pchar是标准的Windows函数,而Delphi中有时用Pchar,有时用String
但要记住,在单个模块中用String,在模块与模块之间调用的时候用Pchar

解决方案 »

  1.   

    必要时进行适当的转换
    Pchar(Data1)
    String(Data1)
      

  2.   

    谢谢jianghuxiaozi(江湖小子)以string写入时 并非我像要的16进制 而是ASCII码
    在DELPHI中 写入 chr(x:byte)  可以转换为16进制
    我需要在IC卡中写入16进制  怎样才可以完成  pchar 与chr(x:byte) 之间的转换data1:=chr(222) 为什么可以这样写?
      

  3.   

    var ch:array[0..127] of Char;
      

  4.   

    用个笨办法
    先定义一个STRING
    然后
     STRING:=CHR(X);

    DATA1:=PCHAR(STRING);
    不知道行不行,呵呵。
      

  5.   

    outer2000(天外流星)谢谢你啊  管用了   呵呵.
      

  6.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      S: Byte;
      P: PChar;
    begin
      P := Pchar(chr(S));
    end;
      

  7.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      S: Byte;
      P: PChar;
    begin
      P := Pchar(chr(S));
    end;
      

  8.   

    int swr_24c01a(int icdev, int offset, int len, unsigned char* w_string)
    应该是一个C/C++写的DLL函数吧!在DELPHI调用时就这样声明:
    function swr_24c01a(icdev, offset, len: integer; w_string: pchar): integer; stdcall; 
    external "*.dll";调用时应为:var data: pchar;
        str: string;
       
    begin
      str := 'e8';
      getmem(data, length(str));
      try
        lstrcpy(data, str);
        swr_24c01a(232, 0, length(str),  data);
      finally
        freemem(data);
      end;
    end;