UnRAR.dll аля VB

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

UnRAR.dll аля VB

Сообщение Dmitriy2003 » 28.07.2003 (Пн) 2:54

Hallo Leute!!!
Please подскажите в чем я ошибаюся, а то горит очень. Есть энта библиотека от известного архиватора, есть в ней пара функций:
1) - RARSetChangeVolProc
2) - RARSetProccessDataProc
'
Короче вопрос втом что при выходе из тела этих функций происходит бух бам и ..... а вроде я все правильно объявил. Типа объявление 1) у меня такое - Private Declare Function RARSetProccessDataProc (ByVal hArch as long, ByVal lpProccessDataProc as long) Был у меня раньше файл с описание этих функций на С но я его кудато подевал блин.Может они блин через std работают ау ..... :?:
Dmitrich

DiSe
Обычный пользователь
Обычный пользователь
 
Сообщения: 97
Зарегистрирован: 30.06.2003 (Пн) 19:11

Сообщение DiSe » 28.07.2003 (Пн) 10:16

А вот и не правильно объявил.:lol: Надо Declare Function функция Lib "имя dll" alias "имя функции в dll" (параметры)

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Сообщение Dmitriy2003 » 28.07.2003 (Пн) 22:19

Ну это всем понятно а конктретнее в чем подвох. Или у Вас все работает нормально!!! :twisted:
Dmitrich

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 29.07.2003 (Вт) 5:36

Скачай с rarlab ocx для VB и не парься...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Сообщение Dmitriy2003 » 29.07.2003 (Вт) 23:32

Я об этом уже думал. Не получится так. Дофига проектов переписывать. Жаль... Я так понимаю unrar.dll на паскале написанна. И че он аргументы в стек по другому ложит что ли???? :?:
Dmitrich

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 30.07.2003 (Ср) 8:26

Кинь-ка сюда свои описания. Посмотрим.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Сообщение Dmitriy2003 » 30.07.2003 (Ср) 22:48

Енти в модуле класса CUnRaR
------------------------------------------------------------------
Private Declare Function RAROpenArchive Lib "unrar.dll" (ArcData As RAROpenArchiveData) As Long
Private Declare Function RARReadHeader Lib "unrar.dll" (ByVal hArcData As Long, HeaderData As RARHeaderData) As Long
Private Declare Function RARProcessFile Lib "unrar.dll" (ByVal hArcData As Long, ByVal Operation As Long, _
ByVal DestPath As String, ByVal DestName As String) As Long
Private Declare Function RARCloseArchive Lib "unrar.dll" (ByVal hArcData As Long) As Long
Private Declare Sub RARSetChangeVolProc Lib "unrar.dll" (ByVal hArcData As Long, ByVal lpfChangeVolProc As Long)
Private Declare Sub RARSetProcessDataProc Lib "unrar.dll" (ByVal hArcData As Long, ByVal lpfProcessDataProc As Long)
Private Declare Sub RARSetPassword Lib "unrar.dll" (ByVal hArcData As Long, ByVal Password As String)
'
Енти в станд. модуле
-------------------------------------------
Public Function ChangeVolProc(ByVal ArcName As Long, ByVal Mode As Long) As Long
'
End Function
'
Public Function ProccessDataProc(ByVal lAddr As Long, ByVal lSize As Long) As Long
'
End Function
'
Архив нормально открывается файлы прекрасно извлекаются
Да вот только когда CallBack ставлю что на ChangeVolProc, что на ProccessDataProc происходит катавасия какаято...

вот код моих вызовов:
---------------------------------------------------------
Public Function ExtractArchive(sArchive As String, Optional sDestPath As String, Optional sPassword As String) As Boolean
'
Dim hArc As Long
Dim HRCode As Long
Dim PFCode As Long
Dim Hdr As RARHeaderData
'
ExtractArchive = True
'
If Not OpenArchive(sArchive, RAR_OM_EXTRACT, hArc) Then
ExtractArchive = False
Exit Function
End If
'
If bfPrDataView Then
RARSetProcessDataProc hArc, AddressOf ProccessDataProc
End If
'
If Len(sPassword) > 0 Then RARSetPassword hArc, sPassword
'
Hdr.CmtBuf = CMT_NULL
HRCode = RARReadHeader(hArc, Hdr)
'
Do While (HRCode = RAR_HDR_READ_OK)
'
'Здесь в первый раз вызывается ProccessDataProc...гм. Ну и последний.....
PFCode = RARProcessFile(hArc, RAR_EXTRACT, sDestPath, vbNullString)
'
If PFCode <> RAR_FILE_PR_OK Then
OutProcessFileError PFCode, Left$(Hdr.FileName, lstrlen(Hdr.FileName)), nERMetod
ExtractArchive = False
Exit Do
End If
'
HRCode = RARReadHeader(hArc, Hdr)
Loop
'
If HRCode = ERAR_BAD_DATA Then
OutHeaderReadError HRCode, Left$(Hdr.FileName, lstrlen(Hdr.FileName)), nERMetod
ExtractArchive = False
End If
'
Call CloseArchive(hArc, Left$(Hdr.ArcName, lstrlen(Hdr.ArcName)))
'
End Function
Dmitrich

AlexKonev
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 16.07.2003 (Ср) 15:21
Откуда: Омск

UnRar.ocx - это хорошо, а есть ли Rar.ocx?

Сообщение AlexKonev » 31.07.2003 (Чт) 10:02

GSerg писал(а):Скачай с rarlab ocx для VB и не парься...


Прежде чем разархивировать что-то ненужное, надо заархивировать что-то ненужное :D
Просьба сам WinRar не предлагать - на неком компьютере его может и не оказаться.

Urvin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 518
Зарегистрирован: 04.06.2003 (Ср) 10:47
Откуда: с Марса

Re: UnRar.ocx - это хорошо, а есть ли Rar.ocx?

Сообщение Urvin » 31.07.2003 (Чт) 13:37

AlexKonev писал(а):Прежде чем разархивировать что-то ненужное, надо заархивировать что-то ненужное :D
Просьба сам WinRar не предлагать - на неком компьютере его может и не оказаться.

Почему? Возьми рар с собой - еще досовскую версию - ничего не весит, описание по обращению к нему с командной строки - есть в поставке..
Не так страшен русский танк, как его пьяный экипаж

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Сообщение Dmitriy2003 » 31.07.2003 (Чт) 23:15

Люди ПРОСТИТЕ Вы че бредите что ли а, че ненужное, на кой ху. я стал вопросы задавать я бл. не теоретик. А ентот ебаный rar.ocx в гробу я видел в белых тапочках. Скажу больше да простят меня Боги на кой хуй Вообще в OCX было оформлять. Чтоб поиздеватся что-ли. Я другого рационального подхода не вижу. :twisted:
Dmitrich

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Сообщение Dmitriy2003 » 31.07.2003 (Чт) 23:38

Пардон. Если кто покажет как Implements в купе с OCX реализовать возьму свои слова обратно я не гордый. На счет слов смотреть выше. :lol:
Dmitrich


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

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

Сейчас этот форум просматривают: AhrefsBot и гости: 4

    TopList