不兼容的类型pwidechar和字符串ShellExecute

K.M*_*MuS 2 delphi shellexecute delphi-xe7

我尝试使用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;
Run Code Online (Sandbox Code Playgroud)

Dav*_*nan 5

文本参数ShellExecute是类型的PChar.但是你为参数4提供了一个字符串.

错误消息非常清楚.你知道通过检查ShellExecute有问题的参数是类型PChar(别名PWideChar)的声明.并且错误消息告诉您正在通过string.

代替

'a -r -ta'+ PChar(sdate) +' D:\xlsFiles.rar D:\*.xls*'
Run Code Online (Sandbox Code Playgroud)

通过

PChar('a -r -ta'+ sdate +' D:\xlsFiles.rar D:\*.xls*')
Run Code Online (Sandbox Code Playgroud)