请教问题!在线等!

jzzm 2003-08-30 04:40:15
我定义了一个String的变量,为什么不能在ShellExecute这个函数中使用,还有Stringt和Pchar有什么区别,为什么书上都没有提到Pchar,它们之间如何转换.
...全文
27 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
寂寞沙洲 2003-08-30
  • 打赏
  • 举报
回复
shellexecute要用pchar类型,转换如下:pchar(string1).
hmily1688 2003-08-30
  • 打赏
  • 举报
回复
在shellexecute中类型不匹配吧
pchar类型代表从索引下标开始的以Null结尾的字符数组
pascal长字符串赋值兼容pchar类型,所以可以将pchar类型字符串直接赋给string类型变量

var s1:string ;
p1:pchar
begin
p1:='aaa';
s1:=p1;
end;
不能将string类型的变量赋值给pchar类型的变量,此时必须进行强制转换.
function ansipos(const substr,s:string):integer
var p:pchar;
begin
result:=0;
p:=ansistrpos(pchar(s),pchar(substr));
if p<> nil then
result:-integer(p)-Integer(pchar(s))+1;
end;
第三pchar类型和string类型可以在双目运算表达式中混合使用.
第四:如果子程序或对象的方法以长字符串为参数,则调用时的实际参数可以为pchar类型,此时delphi会自动强制转换,
你所说的用shellexecute调用属于第二种,
更具体的可以参照《参透delphi/kylix》,84页

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧