我定义一个List,往里添加Pchar类型的元素,为什么再取出来的时候就变了呢?

解决方案 »

  1.   

    你最好是把它包装成对象TObject后再往里加,保险没问题
      

  2.   

    是这样吗:
    type
      PMyList = ^AList;
      AList = record
        I: Integer;
        C: Char;
      end;
    var
      MyList: TList;
      ARecord: PMyList;
    begin
      MyList := TList.Create;
      try
        New(ARecord);
        ARecord^.I := 100;
        ARecord^.C := 'Z';
        MyList.Add(ARecord);
    end;
    是这个样子吗?
    我想做个DLL,又不敢使用String类型,怕将来调用的时候有问题.
    我的本意是做个压缩软件,我想把一些信息写到流里去,用WriteBuffer方法,所以必须把这些信息转成Pchar类型的。
    我说的对吗?请多提宝贵的意见。谢谢!
    如果愿意的话请在QQ上教我,我的QQ12416204,谢谢!!!
      

  3.   

    你的道理很对呀
    type
      PMyList = ^AList;
      AList = record
        I: Integer;
        C: pChar;//改成pchar也可以呀,不知道是不是你的意思
      end;
    读出的时候
      MyList := TList.Create;
      New(ARecord);
      ARecord^.I := 100;
      ARecord^.C := 'abcdef';
      MyList.Add(ARecord);
      showmessage(pMyList(MyList.Items[0]).c);
      

  4.   

    看来和刚才的帖子是一个问题,你能具体写写是写入的什么读出了什么,怎么出错的
    还有,在Dll中使用String是毫无问题的,主要是调用的接口使用Pchar就可以了