GZIP

Тема в разделе "WASM.HEAP", создана пользователем GeNeZiS, 30 ноя 2010.

  1. GeNeZiS

    GeNeZiS New Member

    Публикаций:
    0
    Регистрация:
    14 сен 2006
    Сообщения:
    135
    Приветствую вас.
    Кто-нибуть владеет информацией как винда работает с GZIP (сжатие/разжатие) стандартными средствами? какие dll юзает (желательно) и какие API (было бы супер) ?
    Благодарю за внимание
     
  2. GeNeZiS

    GeNeZiS New Member

    Публикаций:
    0
    Регистрация:
    14 сен 2006
    Сообщения:
    135
    это связано с тем, что решено отказаться от zlib.

    через zlib делал так
    Код (Text):
    1. GzipDecompress  proc uses ebx lpSrcData, dwSrcLen, lpDestData, lpDestLen : DWORD
    2.         LOCAL   Stream : Z_STREAM
    3.  
    4.         mov Stream.zalloc, 0
    5.         mov Stream.zfree, 0
    6.         mov Stream.opaque, 0
    7.         mov Stream.total_out, 0
    8.  
    9.         mov     eax, lpSrcData
    10.         mov     Stream.next_in, eax
    11.         mov     eax, dwSrcLen
    12.         mov     Stream.avail_in, eax
    13.         mov     eax, lpDestData
    14.         mov     Stream.next_out, eax
    15.         mov     eax, lpDestLen
    16.         mov     Stream.avail_out, eax
    17.  
    18.         lea ebx, Stream
    19.  
    20.         xinvoke inflateInit2_, ebx, 47d, offset szZlibV, sizeof Stream
    21. @@:
    22.         xinvoke inflate, ebx, Z_FINISH
    23.         test    eax, eax
    24.         jz  @B
    25.  
    26.         xinvoke inflateEnd, ebx
    27.         mov eax, Stream.total_out
    28.         ret
    29. GzipDecompress  endp
    30.  
    31. GzipCompress    proc uses ebx lpSrcData, dwSrcLen, lpDestData, lpDestLen : DWORD
    32.         LOCAL   Stream : Z_STREAM
    33.        
    34.         mov Stream.zalloc, 0
    35.         mov Stream.zfree, 0
    36.         mov Stream.opaque, 0
    37.         mov Stream.total_out, 0
    38.  
    39.         mov     eax, lpSrcData
    40.         mov     Stream.next_in, eax
    41.         mov     eax, dwSrcLen
    42.         mov     Stream.avail_in, eax
    43.         mov     eax, lpDestData
    44.         mov     Stream.next_out, eax
    45.         mov     eax, lpDestLen
    46.         mov     Stream.avail_out, eax
    47.  
    48.         lea ebx, Stream
    49.  
    50.         push    sizeof Stream
    51.         push    offset szZlibV
    52.         push    Z_DEFAULT_STRATEGY
    53.         push    8
    54.         push    MAX_WBITS
    55.         push    Z_DEFLATED
    56.         push    Z_DEFAULT_COMPRESSION
    57.         push    ebx
    58.         call    deflateInit2_
    59.        
    60. @@:
    61.         xinvoke deflate, ebx, Z_FINISH
    62.         test    eax, eax
    63.         jz  @B
    64.  
    65.         xinvoke deflateEnd, ebx
    66.         mov eax, Stream.total_out
    67.         ret    
    68. GzipCompress    endp
    может кто MASM'овскими исходниками работы стандартного виндового GZIP (сжатие/разжатие) поделится?)) был бы очень признателен
     
  3. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    GZIP- GNU zip если я в теме?
    Могу поискать исходник zip.c unzip.c

    Вообще эта задача легко решается если ее вынести на php-сервер.
    Как вариант -подумай.
     
  4. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    О вот еще с codeproject -а какой-то liteZip тоже
    с gzip-ом работает. Есть исходники на С.
     
  5. onSide

    onSide New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    476
    https://wasm.ru/forum/viewtopic.php?id=15067
    {54c37cd0-d944-11d0-a9f4-006097942311}

    Но имхо легче взять тот же злиб или еще что-то и переделать под свои нужды.
     
  6. r90

    r90 New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2005
    Сообщения:
    898
    _sheva740
    Да, но алгоритмы всё же разные.