amigos. necesito que un modulo utilice una librería que no está en la ruta en donde se encuentra un exe, de esta forma funciona sin problemas llamando a la dll desde disco local C
Public Declare Function Wiz_SingleEntryUnzip Lib "C:\Unzip32.dll" (ByVal ifnc As Long, ByRef ifnv As ZIPnames, ByVal xfnc As Long, ByRef xfnv As ZIPnames, dcll As UNZIPOPTIONS, Userf As UNZIPUSERFUNCTION) As Long
Pero si lo hago con App.Path, de esta forma no funciona:
Public Declare Function Wiz_SingleEntryUnzip Lib App.Path & "\1\Unzip32.dll" (ByVal ifnc As Long, ByRef ifnv As ZIPnames, ByVal xfnc As Long, ByRef xfnv As ZIPnames, dcll As UNZIPOPTIONS, Userf As UNZIPUSERFUNCTION) As Long
me da error de compilación, ¿Cuál seria la forma correcta amigos?
Muchas gracias :laugh:
Hola!
Te doy algunas ideas de lo que puedes hacer:
1) Colocar el path de la dll en la variable de entorno PATH y definir la misma sólo con el nombre. De esta forma el SO la puede hallar. Osea:
Public Declare Function Wiz_SingleEntryUnzip Lib "Unzip32.dll" (ByVal ifnc As Long, ByRef ifnv As ZIPnames, ByVal xfnc As Long, ByRef xfnv As ZIPnames, dcll As UNZIPOPTIONS, Userf As UNZIPUSERFUNCTION) As Long
2) Copiar la dll en el path de la app.
3) Usar CallApiByName. o hacer tu propio hack con CallWindowProc.
Saludos!
Cita de: MCKSys Argentina en 22 Septiembre 2014, 19:21 PM
Hola!
Te doy algunas ideas de lo que puedes hacer:
1) Colocar el path de la dll en la variable de entorno PATH y definir la misma sólo con el nombre. De esta forma el SO la puede hallar. Osea:
Public Declare Function Wiz_SingleEntryUnzip Lib "Unzip32.dll" (ByVal ifnc As Long, ByRef ifnv As ZIPnames, ByVal xfnc As Long, ByRef xfnv As ZIPnames, dcll As UNZIPOPTIONS, Userf As UNZIPUSERFUNCTION) As Long
2) Copiar la dll en el path de la app.
3) Usar CallApiByName. o hacer tu propio hack con CallWindowProc.
Saludos!
gracias por tu respuesta amigo
la 2 la descarto, por que no quiero que la DLL este en la misma ruta
y para la 3era no tengo los conocimientos como para hacerlo.
a que te refieres con colocar la ruta de la dll en la variable de entorno PATH? que tendría que hacer, estoy empezando con vb6 y no logro entenderlo
gracias amigo
Cita de: rapbyone en 22 Septiembre 2014, 19:47 PM
a que te refieres con colocar la ruta de la dll en la variable de entorno PATH? que tendría que hacer, estoy empezando con vb6 y no logro entenderlo
gracias amigo
A algo como esto:
Private Declare Function SetEnvironmentVariable Lib "kernel32" Alias "SetEnvironmentVariableA" (ByVal lpName As String, ByVal lpValue As String) As Long
Private Declare Function GetEnvironmentVariable Lib "kernel32" Alias "GetEnvironmentVariableA" (ByVal lpName As String, ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Sub Command1_Click()
Dim strBuffer As String
Dim lngStatus As Long
strBuffer = Space$(1024)
lngStatus = GetEnvironmentVariable("Path", strBuffer, Len(strBuffer))
If lngStatus > 0 Then
strBuffer = Left$(strBuffer, lngStatus)
strBuffer = strBuffer & ";C:\DLLFiles"
lngStatus = SetEnvironmentVariable("Path", strBuffer)
End If
End Sub
Fuente: click (http://www.vbforums.com/showthread.php?390685-RESOLVED-Setting-the-PATH-variable-in-Visual-Basic)
Saludos!
PD: Por las dudas, lee esto (http://es.wikipedia.org/wiki/Variable_de_entorno).
Prefecto amigo, lo logre, muchas gracias