没有分可以问一下简单的问题吗?(0分)

  • 主题发起人 主题发起人 wydsunway
  • 开始时间 开始时间
W

wydsunway

Unregistered / Unconfirmed
GUEST, unregistred user!
有一个函数是取得系统路径的.其中定义一个变量为
Var
dir:array[0..255] of char;
begin
getsystemdirectory(@dir,255);
end;
我想了很久都不懂,为什么变量dir一定要是数组呢?改为char或String为什么不行?
 
问问微软工程师为啥api这样写。
 
这个简单的问题,大家应该不会看到没有分就不帮忙吧,不过,等我有分的时候,我一定会加倍送上的.在此先谢谢各位啦!
 
不是说不行
但既然他接口是这么留的
我们也只好这么用了
 
不能用char,可以用string:
Var
dir:string;
begin
setlength(dir,255);
getsystemdirectory(PChar(dir),255);
label1.caption:=dir;
end;
或PChar:
Var
dir:pchar;
begin
getmem(dir,255);
getsystemdirectory(dir,255);
label1.caption:=dir;
freemem(dir);
end;
 
TO:kaida
你的解释还有有一个我搞不懂:你定义变量dir为char时,为什么要用getmem函数来取得内存(不好意思,我问的问题太没水平啦!不过,我真的是个delphi初学者,请别见笑!)
 
用数组声明时内存已分配好了,而用PChar或string都需要自己分配:
setlength(dir,255);//string
getmem(dir,255);//PChar
 
TO:weiwei81123谢谢
 
后退
顶部