(iKeyType,iBlockn:Integer;var sReply:Char);
—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
             毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
  I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”或者去掉';
I.Desire := '加不加分随你';
—————————————————————————————————
    

解决方案 »

  1.   

    readblock_h(Var iKeyType,iBlockn: integer; Var sReply:char);
      

  2.   

    如果要返回值,就加var,如果不返回值,只传入参数,
    就不用加var,readblock_h(iKeyType,iBlockn: integer; sReply:char);
      

  3.   

    readblock_h(iKeyType,iBlockn: integer; sReply:pchar);
      

  4.   

    但是怎么用呀,我用
    readblock_h(0,0,sData);
    不行,sData是我声明的一个变量
      

  5.   

    var
      mchar: char;
    begin
      mchar:='A';
      Readblock_h(0,0,mchar);
    end;
      

  6.   

    readblock_h(Var iKeyType,iBlockn: integer; Var sReply:char); stdcall;external 'KeyCard.dll';
      

  7.   

    function readblock_h(iKeyType:integer;iBlockn:integer;sReply:pchar):integer;stdcall;external 'youdll.dll' name 'functionname';其中sReply参数必须在调用前分配足够的空间来使用。
      

  8.   

    你的sData变量是什么类型的,如果是pchar则需要在使用前先分配好空间,如果是字符数组就用取它的地址(1)
    sdata:pchar;sdata:=getmem($1000);
    Readblock_h(0,0,sdata);
    .....(2)
    sdata:array[0..$1000-1] of char;Readblock_h(0,0,@sdata);
      

  9.   

    在delphi中应这样声明:
    readblock_h(variKeyType:integer;variBlockn:integer;^sReply:pchar);stdcall;
    其中的dll应放在本目录下;^sReplay为指针
      

  10.   

    netlib:
       我这么用总是报内存错误!我的声明是
    function readblock_h(iKeyType: integer;iBlockn: integer;var sData: String):integer;stdcall;external 'aa.dll';