目前在用delphi想访问sle4442卡。
这是错误的提示:
http://img8.photo.163.com/tq84/1720029/19399360.jpg我知道他说我错的意思是不确定的函数类型,可是我试过了把他的类型声明为pchar和integer,都不行。不知道怎么回事,还是报错。这是变量的声明:http://img8.photo.163.com/tq84/1720029/19399117.jpg
88、89的代码是这样的:
srd_4442(icdev,64,8,date1);
srd_4442(icdev,75,2,date2);这是ic卡商给的函数代码如下:
int srd_4442(int icdev, int offset, int len, unsigned char* r_string )说明: 从指定地址读数据 
调用: icdev: 通讯设备标识符 
offset: 偏移地址,其值范围0~255
len: 字符串长度,其值范围1~256 
r_string: 读出数据所存放地址指针
返回: <>0 错误
=0

解决方案 »

  1.   

    var
      data1 : array[0..255] of char;
    begin
      srd_4442(icdev,64,8,@data1[0]);
    end;
      

  2.   

    unsigned char* r_string 对应pchar
      

  3.   

    >>int srd_4442(int icdev, int offset, int len, unsigned char* r_string )function std_4442(icdev, offset, len: integer; r_string: pchar):integer;stdcall;exteren 'xxx.dll';srd_4442(icdev,64,8,@data1[0]);
      

  4.   

    function std_4442(icdev:longint;offset:longint; len: longint; r_string: pchar):integer;stdcall;exteren 'xxx.dll';data1:array[0..8] of char;
    srd_4442(icdev,64,8,data1);
    就ok啊
      

  5.   

    var
      data : array[0..255] of char;
      icdev:long;
    begin
      srd_4442(icdev,64,8,@data);
    end;