Visual Basic - Problema unzip32.dll

Life is soft - evento anual de software empresarial
 
Vista:

Problema unzip32.dll

Publicado por willber (1 intervención) el 23/07/2008 21:45:33
Hola
Tengo problemas al descomprimir
dos archivos con password
al descomprimir el primero todo sale bien
pero cuando trato de descomprimir el mismo archivo
no reconoce el password q ingreso y no puedo descomprimirlo
..y bueno solo pasa eso cuando descomprimo un segundo archivo q tenga pasword
''''he intentado descargar la libreria de la memoria despues que descomprima
y volver a cargarla cuando tenga q iniciar a descomprimir

este es el codigo q va en el modulo....
Private Function UnzipPasswordCallBack(ByRef pwd As cbch, _
ByVal X As Long, ByRef s2 As cbch, ByRef Name As cbch) As Long
Dim sPassword As String
Dim bCancel As Boolean, bConfirm As Boolean
Dim b() As Byte
Dim lSize As Long
On Error Resume Next
UnzipPasswordCallBack = 1
If m_bCancel = True Then: Exit Function
'sPassword = "abc" '''clave '''esta es la clave como aun esta en prueba
Call m_cZip.PasswordRequest_unzip(sPassword, X, m_bPasswordConfirm, bCancel)
'''''dispara el evento en el formulario

If Trim(sPassword) = "" Or bCancel = True Then
bCancel = True: UnzipPasswordCallBack = 0
: Exit Function
End If
sPassword = Trim$(sPassword)
lSize = Len(sPassword)
If lSize > 254 Then
lSize = 254
End If
b = StrConv(sPassword, vbFromUnicode) ''' se transforma a bit
CopyMemory pwd.ch(0), b(0), lSize 'se copia
UnzipPasswordCallBack = 0
End Function

''''''''''''este es el codigo del formulario
''no me puede descomprimir dos archivos consecutivos solo el primero y despues
''no reconoce l password
Private Sub m_cZ_Passwordunzip(sPassword As String, ByVal lMaxPasswordLength As Long, ByVal bConfirm As Boolean, bCancel As Boolean)
Dim lspassword$
Dim sMsg$
If (bConfirm) Then
sMsg = "confirme Contraseña:"
Else
sMsg = "Ingrese Contraseña:"
End If

If m_cZ.PassUnzip = True Then ''contraseña para el cliente
sPassword = Trim(InputBox("", sMsg))
Else ''contraseña del sistema
sPassword = m_cZ.m_passSystem
sPassword = "abc"
bCancel = False
End If

'''
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema unzip32.dll

Publicado por Juan Carlos Rodriguez (1 intervención) el 03/05/2011 10:13:03
El problema está en que no concatenas la password con vbNullChar. Al copiar la password en memoria puede que los bit siguientes tengan datos que hacen malintepretar la password. Al mandar vbNullChar, evitas ese problema.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar