Zlib.dll

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Santa
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 101
Зарегистрирован: 07.05.2004 (Пт) 1:34
Откуда: KZ

Zlib.dll

Сообщение Santa » 20.12.2004 (Пн) 4:10

Здрасти!
Пытаюсь юзать Zlib.dll, нужна помощь. :roll:
Я знаю только 2 функции:
Private Declare Function compress Lib "zlib.dll" (dest As Any, destLen As Any, src As Any, ByVal srcLen As Long) As Long
Private Declare Function uncompress Lib "zlib.dll" (dest As Any, destLen As Any, src As Any, ByVal srcLen As Long) As Long

Можеть кто знает и другие функции к примеру Percent(процент) или какие нибудь ещё.
Зарание благодарен. :wink:
SIVIS PACEM PARA BELLUM

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 20.12.2004 (Пн) 7:11

Для начала нужно достать zlibwapi.dll (она stdcall, а обычная zlib.dll - cdecl, и с ней из VB проблематично работать).

Вот кусок моей проги, которая юзает zlibwapi.dll:
Код: Выделить всё
Private Declare Function compress2 Lib "zlibwapi.dll" (ByVal Dest As String, DestLen As Long, ByVal Source As String, ByVal SourceLen As Long, ByVal Level As Long) As Long
Private Declare Function compressBound Lib "zlibwapi.dll" (ByVal SourceLen As Long) As Long

Private Const Z_NO_FLUSH As Long = 0&
Private Const Z_PARTIAL_FLUSH As Long = 1&
Private Const Z_SYNC_FLUSH As Long = 2&
Private Const Z_FULL_FLUSH As Long = 3&
Private Const Z_FINISH As Long = 4&
Private Const Z_BLOCK As Long = 5&
Private Const Z_OK As Long = 0&
Private Const Z_STREAM_END As Long = 1&
Private Const Z_NEED_DICT As Long = 2&
Private Const Z_ERRNO As Long = -1&
Private Const Z_STREAM_ERROR As Long = -2&
Private Const Z_DATA_ERROR As Long = -3&
Private Const Z_MEM_ERROR As Long = -4&
Private Const Z_BUF_ERROR As Long = -5&
Private Const Z_VERSION_ERROR As Long = -6&
Private Const Z_NO_COMPRESSION As Long = 0&
Private Const Z_BEST_SPEED As Long = 1&
Private Const Z_BEST_COMPRESSION As Long = 9&
Private Const Z_DEFAULT_COMPRESSION As Long = -1&
Private Const Z_FILTERED As Long = 1&
Private Const Z_HUFFMAN_ONLY As Long = 2&
Private Const Z_RLE As Long = 3&
Private Const Z_DEFAULT_STRATEGY As Long = 0&
Private Const Z_BINARY As Long = 0&
Private Const Z_ASCII As Long = 1&
Private Const Z_UNKNOWN As Long = 2&
Private Const Z_DEFLATED As Long = 8&
Private Const ZLIB_VERSION As String = "1.2.1"


Public Function Compress(Data As String) As String
    Dim Output As String, OutputLength As Long
    OutputLength = compressBound(Len(Data))
    Output = Space(OutputLength)
    Debug.Assert compress2(Output, OutputLength, Data, Len(Data), Z_BEST_COMPRESSION) = Z_OK
    Compress = Left$(Output, OutputLength)
End Function
Изображение

Santa
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 101
Зарегистрирован: 07.05.2004 (Пт) 1:34
Откуда: KZ

Zlib.dll

Сообщение Santa » 21.12.2004 (Вт) 1:35

Для начала что такое stdcall и cdecl, и вчем разница между ними???
И почему проблемотично, задаёшь эти 2 функции и порядок, и compres и decompres, только не проследишь и пороль не поставишь.
А вообще хотелось бы по теме Zlib.dll, неужели ни кто и ни когда не юзал её. Кто то же узнал эти 2 функции. Должно быть чтото ещё!
SIVIS PACEM PARA BELLUM

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 21.12.2004 (Вт) 7:36

Вкратце, stdcall - то, с чем легко работать из VB, а cdecl - то, с чем сложно.
Функций там дохрена, и они все объявлены в файле zlib.h. Кидать его сюда, или сам скачаешь с http://www.gzip.org/zlib/ ?
Изображение

Santa
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 101
Зарегистрирован: 07.05.2004 (Пт) 1:34
Откуда: KZ

Zlib.dll

Сообщение Santa » 21.12.2004 (Вт) 22:31

Посмотрел то я ссылочку, да и ни чего не понял.
Там всё по английски, тяжеловато у меня с ним в таких количествах.
И про VB там ничего не нашел. А файл zlib.h вроде не VB'шный.
А я про VB, форум то про VB???
Хотя воложить на вский стоит.
SIVIS PACEM PARA BELLUM

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 21.12.2004 (Вт) 22:39

Вон, говорят ApiViewer может переводить .h в .bas. Можешь попробовать.
Переводчиков тоже в Интернете навалом, не буду же я тебе 59Кб переводить?

Это я просто про то, что всё открытым текстом выложено, надо только взять и прочитать. Никакой телепатии не надо.
Изображение

Santa
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 101
Зарегистрирован: 07.05.2004 (Пт) 1:34
Откуда: KZ

Сообщение Santa » 21.12.2004 (Вт) 22:50

Ок! Ну а где файл, попытаюсь попробовать мож че и получется.
SIVIS PACEM PARA BELLUM

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 22.12.2004 (Ср) 11:12

Дык тут: http://www.gzip.org/zlib/zlib121-dll.zip
В папке include.
Изображение

Santa
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 101
Зарегистрирован: 07.05.2004 (Пт) 1:34
Откуда: KZ

Сообщение Santa » 12.01.2005 (Ср) 4:05

tyomitch писал(а):Вон, говорят ApiViewer может переводить .h в .bas. Можешь попробовать.
Переводчиков тоже в Интернете навалом, не буду же я тебе 59Кб переводить?

Это я просто про то, что всё открытым текстом выложено, надо только взять и прочитать. Никакой телепатии не надо.


НЕ НЕСМОГ 8)
SIVIS PACEM PARA BELLUM


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Don Leno, Yandex-бот и гости: 129

    TopList