对TMemorystring变量是不是有限制?

解决方案 »

  1.   

    TMemoryStream里面保存的是不是全是WideString的内容来的?var 
      W: WideString;
    begin
      W := PChar(MemoryStream.Memory);
      ...
    end;别问我为什么,我也说不清...
      

  2.   

    不行啊~~~~~~~
    MemoryStream我也不知道是什么类型,MemoryStream.LoadFromFile(一个压缩的文件);W := PChar(MemoryStream.Memory);压缩的文件有100多k,但是Length(W)=2 ~~~晕~~~
      

  3.   

    PChar, PWideString转换时,如遇到0时,表示结束了,所以Length(W)长度就不是MemoryStream.Size了,你这样转成WideString有什么用啊。不如直接用MemoryStream.Memory进行操作得了,省事
      

  4.   

    是,我也不爽~~
    老大一声令下,要我把做的函数返回类型由TmemoryStream变为WideString
    只好改之~~~~~~~做小弟难啊~
      

  5.   

    我用WideString(MemoryStream)强转,大了一点点~  =13再晕~~~~
      

  6.   

    function MemoryToWideString(Memroy: TMemoryStream): WideString;
    begin
      Result := '';
      if Memory.Size = 0 then Exit;
      SetLength(Result, Memory.Size);
      Move(Memory.Memory^, Result[1], Memory.Size);
    end;如果不成功,试试将最后一句改成:
      Move(Memory.Memory^, Result[1], Memory.Size * 2);