首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不兼容的类型:'WideChar‘和'Char’delphi 7

不兼容的类型:'WideChar‘和'Char’delphi 7
EN

Stack Overflow用户
提问于 2012-09-23 02:32:52
回答 1查看 2K关注 0票数 1

在使用shellexecute调用外部程序时,我的delphi代码中出现错误

代码语言:javascript
复制
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;

如何纠正此错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-23 04:51:40

ShellExecute函数的定义如下

代码语言:javascript
复制
function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,
  Directory: PChar; ShowCmd: Integer): HINST; stdcall;

因此,问题是您将args变量转换为PWideChar而不是PChar

试试这段代码

代码语言:javascript
复制
ShellExecute(Handle, 'open', 'YTD.exe', PChar(args), nil, SW_SHOWNORMAL);

请记住,Delphi 7早于Unicode Delphi开发。因此,PChar是8位字符类型PAnsiChar的别名。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12546582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档