动态库的参数是Char *
delphi怎么传参数

解决方案 »

  1.   

    char不是Char,c语言是大小写敏感的
    翻成 PAnsiChar
      

  2.   

    例如:
    C声明:      int __stdcall Fa(char* A);
    Delphi声明: function Fa(A: PChar): Integer; stdcall;
      

  3.   

    首先char* 参数是否需要返回值1. 若要返回值则要分配足够大的空间const
       MaxSize = 256;
    var
       intLen: Integer;
       arrBuffer: array[0..MaxSize] of Char;
    begin
       // ??? ... ...   // 调用
       intLen := Fa(arrBuffer);   // ??? ... ...
    end;
    2. 只是传入值var
       strValue: String;
    begin
       // ??? ... ...   strValue := 'exam';
       Fa(Pointer(strValue);
       // 或者Fa(PChar(strValue));
       // 两者区别是当strValue = ''时,Pointer转换为nil, PChar转换成#0字符串常量。   // ??? ... ...
    end;