关于array的问题
procedure TForm1.Button4Click(Sender: TObject);
var
f:array[0..128]of char;
m:TshfileOpstruct;
begin
illchar(f,sizeof(f),0);
strpcopy(f,pchar(edit1.Text));
with m do
begin
wnd:=handle;
wfunc:=fo_delete;
pfrom:=@f;
pto:=nil;
fFlags:= fof_NoConfirmation;
lpszprogresstitle:='正在删除';
end;
if shfileoperation(m)=0 then
messagebox(handle,'删除成功','删除信息',MB_ok +mb_iconinformation)
end;
想问下,为什么array[0..128]改成[1..128]就报错?!
[解决办法]
对于 f 这样直接使用数组,编译器会认为默认下标是0,和你的定义冲突
[解决办法]
要不想从0开始,修改一句代码就可以了:
strpcopy(@f,pchar(edit1.Text));//加上@