不兼容的类型 pwidechar 和字符串 ShellExecute
incompatible types pwidechar and string ShellExecute
我尝试使用 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
的声明,您知道有问题的参数是 PChar
类型(PWideChar
的别名)。并且错误消息告诉您您正在传递 string
。
而不是
'a -r -ta'+ PChar(sdate) +' D:\xlsFiles.rar D:\*.xls*'
及格
PChar('a -r -ta'+ sdate +' D:\xlsFiles.rar D:\*.xls*')
我尝试使用 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
的声明,您知道有问题的参数是 PChar
类型(PWideChar
的别名)。并且错误消息告诉您您正在传递 string
。
而不是
'a -r -ta'+ PChar(sdate) +' D:\xlsFiles.rar D:\*.xls*'
及格
PChar('a -r -ta'+ sdate +' D:\xlsFiles.rar D:\*.xls*')