E2034 Too many actual parameters,该怎么处理
E2034 Too many actual parameters
网上下了一个例程,源码如下
function IEncodeString(inText: string): string;
var
tmp, inBuffer: array [0 .. CNormalBufLen - 1] of Char;
{$IFDEF VER230}
inSize: LongWord;
{$ELSE}
inSize: Integer;
{$ENDIF}
vCompress: Pointer;
begin
Result := '';
if inText = '' then
exit;
inSize := Length(inText);
Move(PChar(inText)^, inBuffer, inSize);
try
CompressBuf(@inBuffer[0], inSize, vCompress, inSize);
PByte(vCompress)^ := inSize;
Move(vCompress^, inBuffer, inSize);
OutputDebugString(PChar(format('0x%s', [IntToHex(PInteger(vCompress)^, 8)])));
inBuffer[inSize] := #0;
FreeMem(vCompress);
except
raise;
end;
Encode6BitBuf(@inBuffer[0], @tmp[0], inSize, CNormalBufLen);
Result := StrPas(tmp);
end;
function IDeCodeString(inText: string): string;
var
tmp: array [0 .. CNormalBufLen - 1] of Char;
inSize: Integer;
vCompress: Pointer;
begin
inSize := Decode6BitBuf(PChar(inText), @tmp[0], Length(inText), CNormalBufLen);
try
tmp[0] := Char($78);
DecompressBuf(@tmp[0], inSize, 0, vCompress, inSize);
Move(vCompress^, tmp[0], inSize);
tmp[inSize] := #0;
FreeMem(vCompress);
except
raise;
end;
Result := StrPas(tmp);
end;
调用代码如下:
IDeCodeString(Trim(g_ListName), edcZip);
编辑运行后提示:[Pascal Error] Thad.pas(343): E2034 Too many actual parameters
------解决方案--------------------
如果代码下载的没问题的话,错误提示已经很明显了,参数太多,你调用的时候只能传一个参数。
网上下了一个例程,源码如下
function IEncodeString(inText: string): string;
var
tmp, inBuffer: array [0 .. CNormalBufLen - 1] of Char;
{$IFDEF VER230}
inSize: LongWord;
{$ELSE}
inSize: Integer;
{$ENDIF}
vCompress: Pointer;
begin
Result := '';
if inText = '' then
exit;
inSize := Length(inText);
Move(PChar(inText)^, inBuffer, inSize);
try
CompressBuf(@inBuffer[0], inSize, vCompress, inSize);
PByte(vCompress)^ := inSize;
Move(vCompress^, inBuffer, inSize);
OutputDebugString(PChar(format('0x%s', [IntToHex(PInteger(vCompress)^, 8)])));
inBuffer[inSize] := #0;
FreeMem(vCompress);
except
raise;
end;
Encode6BitBuf(@inBuffer[0], @tmp[0], inSize, CNormalBufLen);
Result := StrPas(tmp);
end;
function IDeCodeString(inText: string): string;
var
tmp: array [0 .. CNormalBufLen - 1] of Char;
inSize: Integer;
vCompress: Pointer;
begin
inSize := Decode6BitBuf(PChar(inText), @tmp[0], Length(inText), CNormalBufLen);
try
tmp[0] := Char($78);
DecompressBuf(@tmp[0], inSize, 0, vCompress, inSize);
Move(vCompress^, tmp[0], inSize);
tmp[inSize] := #0;
FreeMem(vCompress);
except
raise;
end;
Result := StrPas(tmp);
end;
调用代码如下:
IDeCodeString(Trim(g_ListName), edcZip);
编辑运行后提示:[Pascal Error] Thad.pas(343): E2034 Too many actual parameters
------解决方案--------------------
如果代码下载的没问题的话,错误提示已经很明显了,参数太多,你调用的时候只能传一个参数。