在使用shellexecute调用外部程序时,我的delphi代码中出现错误
procedure TReceiverMainForm.btnSearchClick(Sender: TObject);
var
args:string;
begin
mmoResult.Clear;
// args := ' /d=' + TIdURI.URLEncode(Trim(sSearch)) + ' /t=ReceiverMainForm /s=30 /m=1'
args := ' /q=' + httpencode(Trim(txtSearch.Text)) + ' /t=ReceiverMainForm /s='+Trim(txtS.Text)+' /m='+Trim(txtM.Text);
ShellExecute(Handle, 'open', 'YTD.exe', pWideChar(args), nil, SW_SHOWNORMAL);
end;如何纠正此错误?
发布于 2012-09-23 04:51:40
ShellExecute函数的定义如下
function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,
Directory: PChar; ShowCmd: Integer): HINST; stdcall;因此,问题是您将args变量转换为PWideChar而不是PChar。
试试这段代码
ShellExecute(Handle, 'open', 'YTD.exe', PChar(args), nil, SW_SHOWNORMAL);请记住,Delphi 7早于Unicode Delphi开发。因此,PChar是8位字符类型PAnsiChar的别名。
https://stackoverflow.com/questions/12546582
复制相似问题