filename:string;
filename:=filename;
name:=@filename;
for n:=0 to namelen-1 do
begin
bmp[p]:=((bmp[p] and $f0) or (byte(name[n]) and $0f));
bmp[p+2]:=((bmp[p+2] and $f0) or (byte(name[n])and $f0));
end;
为何会出现Array type required 错误???是什么原因??该如何解决??
P.S:bmp是一个字节数组/

解决方案 »

  1.   

    从你的代码来看,name是一个无类型指针,所以不能引用name[n],除非你声明name是一个PBYTE或PCHAR。
      

  2.   

    干嘛要取filename的首地址?不明白
    pascal非常严谨,不能直接用指针加数字的
    事实上delphi的字符串本身可以被当成字符数组来看,但是记住下标从1开始var
      s: string;
    begin
      s := 'asdf';
      showmessage(s[1]);
    end;得到字符'a'
      

  3.   

    还请各位高手指点一下,小弟我调试了很多次,又找了一些资料也不能解决,由于是从C++代码改写过来的,所以和一开始用delphi写,在严谨上不是很注意