Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Adler32 Добавлено: 15.04.05 03:11  

Автор вопроса:  Sergey | Web-сайт: www.medcare.ru
Кто подскажет, как в VB объявить функцию Adler32 из zlib.dll (считает контрольную сумму) и как ею пользоваться? На сайте http://www.zlib.net/manual.html она описана только для СИ и объявляется так:
uLong adler32 (uLong adler, const Bytef *buf, uInt len);

У меня массив байт. Объявил в проекте
Private Declare Function adler32 Lib "zlib1.dll" _
(adler As Long, buf As Any, lenbuf As Long) As Long и пытаюсь подсчитать сумму так:
tm& = adler32(n&, bt(0), ubound(bt)+1)
Вылетаю. Что не пробовал, все равно вылетаю (ошибка защиты).

Помогите, плз!

Ответить

  Ответы Всего ответов: 2  

Номер ответа: 1
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #1
Добавлено: 15.04.05 21:14
1) Первый и третий аргумент надо передавать по значению (ByVal)
2) Вот так работает (не ручаюсь, что верно)
Private Declare Function adler32 Lib "zlib.dll" (ByVal adler As Long, ByVal buf As Long, ByVal lenbuf As Long) As Long

Private Sub Command1_Click()
    ;Dim adler As Long
    ;Dim bt(100) As Byte
    For i = 0 To 100
        bt(i) = i
    Next
    adler = adler32(0, 0, 0)
    adler = adler32(adler, VarPtr(bt(0)), 101)
    MsgBox adler
End Sub

Ответить

Номер ответа: 2
Автор ответа:
 Sergey



Вопросов: 1
Ответов: 1
 Web-сайт: www.medcare.ru
 Профиль | | #2
Добавлено: 16.04.05 19:29
Спасибо, заработало.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам