我尝试使用winrar命令行压缩文件,
但是当我在命令行中添加变量时,出现这些错误
类型'PWideChar'和'string'不兼容!

我将sdate变量转换为WideChar,但是它不起作用!

我该如何解决!

procedure TForm1.Button1Click(Sender: TObject);
var
mydate : TDateTime;
sdate : string;
begin
mydate:= Now-7;
sdate := FormatDateTime('YYYY/mm/dd',mydate);
  ShellExecute(0, 'open', PChar('C:\Program Files\WinRAR\WinRar.exe'),
    'a -r -ta'+ PChar(sdate) +' D:\xlsFiles.rar D:\*.xls*', nil, SW_SHOW);
end;

最佳答案

ShellExecute的文本参数的类型为PChar。但是,您为参数编号4提供了一个字符串。

错误消息非常清楚。通过检查ShellExecute的声明,您知道有问题的参数的类型为PCharPWideChar的别名)。错误消息告诉您正在传递string

代替

'a -r -ta'+ PChar(sdate) +' D:\xlsFiles.rar D:\*.xls*'


通过

PChar('a -r -ta'+ sdate +' D:\xlsFiles.rar D:\*.xls*')

10-07 16:35