anchor.diff:  
   function InterlockedExchangeAdd(Addend: PLongint; Value: Longint): Longint; overload; external kernel32 name 'InterlockedExchangeAdd';
   function InterlockedExchangeAdd(var Addend: Longint; Value: Longint): Longint; overload; external kernel32 name 'InterlockedExchangeAdd';
  +
  +
   {$IFEND <D2007}
   
   
  
positive.code:   end;
  end;
  
  function HashStr(const pvStrData:String): Integer;
  begin
    Result := HashPtr(PChar(pvStrData), Length(pvStrData) * SizeOf(Char));
  end;
  
  function NewIDString: String;
  var
    lvGuid:TGUID;
  begin
    CreateGUID(lvGuid);
    SetLength(Result, SizeOf(TGUID) * 2);
    BinToHex(@lvGuid, PChar(Result), SizeOf(TGUID));
  end;
  
  function RandomVal(const max: Cardinal): Cardinal;
  
negative.code: function HashStr(const pvStrData:String): Integer;
  function HashPtr(const p:Pointer;l:Integer): Integer;
  
  function NewIDString: DStringW;
  
  procedure BufferToHex(pvBuffer: Pointer; outText: PDCharW; BufSize: Integer);
  
  
  function RandomVal(const max: Cardinal): Cardinal;
  
  