A
acdc
Unregistered / Unconfirmed
GUEST, unregistred user!
定义一个GetCharArray函数,输入字符串,把运算结果通过动态数组传递到外部,并返回数组的长度。
function GetCharArray(expStr:string;var Buf:array of Char):Cardinal;
var
padLen:Cardinal
tmpStr:string;
begin
... ...
Setlength(Buf,padLen);//这一步会出错,提示Constant object cannot be passed as var parameter
Dll(tmpStr,Buf);
Result := padLen;
end;
但是如果我改成这样:
TCharArray = array of Char;
function GetCharArray(expStr:string;var Buf:TCharArray):Cardinal;
var
padLen:Cardinal
tmpStr:string;
begin
... ...
Setlength(Buf,padLen);//这一步没问题
Dll(tmpStr,Buf);//这一步如何调用?Dll的第二个参数是PChar类型的
Result := padLen;
end;
function GetCharArray(expStr:string;var Buf:array of Char):Cardinal;
var
padLen:Cardinal
tmpStr:string;
begin
... ...
Setlength(Buf,padLen);//这一步会出错,提示Constant object cannot be passed as var parameter
Dll(tmpStr,Buf);
Result := padLen;
end;
但是如果我改成这样:
TCharArray = array of Char;
function GetCharArray(expStr:string;var Buf:TCharArray):Cardinal;
var
padLen:Cardinal
tmpStr:string;
begin
... ...
Setlength(Buf,padLen);//这一步没问题
Dll(tmpStr,Buf);//这一步如何调用?Dll的第二个参数是PChar类型的
Result := padLen;
end;