相信很多人都用过ZLib.pas中加解压功能,一般都是用其中的压缩流TCompressionStream和解压流对象TDecompressionStream。但在很多应用,如网络传输中须对数据加压解压,WinSock传递的数据都是内存块指针,因此很需要一套直接基于指针的函数。这时CompressBuf()和DeCompressBuf()就派上用场了,它们的声明如下:
procedure CompressBuf(const InBuf: Pointer; InBytes: Integer;
out OutBuf: Pointer; out OutBytes: Integer);
procedure DecompressBuf(const InBuf: Pointer; InBytes: Integer;
OutEstimate: Integer; out OutBuf: Pointer; out OutBytes: Integer);
procedure CompressBuf(const InBuf: Pointer; InBytes: Integer;
out OutBuf: Pointer; out OutBytes: Integer);
procedure DecompressBuf(const InBuf: Pointer; InBytes: Integer;
OutEstimate: Integer; out OutBuf: Pointer; out OutBytes: Integer);