referencias a dll
Muy buenas a todos,
He creado una dll llamada msgBox.dll. Es una dll que servirÃa para personalizar un msgBox. Tiene un formulario, que es el que mostrará y una funcion pública llamada "MostrarMensaje" a la que se le pasa el tÃtulo y el texto del mensaje.
Añadiéndola desde el menú Proyecto --> Referencias el código para ejecutarla serÃa el siguiente:
Private Sub Command1_Click()
Dim ms As ClsMsgBox 'nombre del proyecto de la dll
Set ms = New ClsMsgBox
ms.MostrarMensaje "titulo", "mensaje"
End Sub
Mi problema es el siguiente: Quiero cargar la referencia por código (no desde el menú Proyecto) y no me sale. Por cosas que he leido, lo he probado de la siguiente manera:
Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Any, ByVal wParam As Any, ByVal lParam As Any) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Sub Command1_Click()
On Error Resume Next
Dim lb As Long, pa As Long
lb = LoadLibrary("C:alumnesprojDLLmsgBox.dll")
pa = GetProcAddress(lb, "MostrarMensaje")
CallWindowProc pa, Me.hWnd, ByVal 0&, "titulo", "mensaje"
FreeLibrary lb
End Sub
Pero no me funciona. Alguien puede ayudarme?
Muchas gracias.
He creado una dll llamada msgBox.dll. Es una dll que servirÃa para personalizar un msgBox. Tiene un formulario, que es el que mostrará y una funcion pública llamada "MostrarMensaje" a la que se le pasa el tÃtulo y el texto del mensaje.
Añadiéndola desde el menú Proyecto --> Referencias el código para ejecutarla serÃa el siguiente:
Private Sub Command1_Click()
Dim ms As ClsMsgBox 'nombre del proyecto de la dll
Set ms = New ClsMsgBox
ms.MostrarMensaje "titulo", "mensaje"
End Sub
Mi problema es el siguiente: Quiero cargar la referencia por código (no desde el menú Proyecto) y no me sale. Por cosas que he leido, lo he probado de la siguiente manera:
Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Any, ByVal wParam As Any, ByVal lParam As Any) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Sub Command1_Click()
On Error Resume Next
Dim lb As Long, pa As Long
lb = LoadLibrary("C:alumnesprojDLLmsgBox.dll")
pa = GetProcAddress(lb, "MostrarMensaje")
CallWindowProc pa, Me.hWnd, ByVal 0&, "titulo", "mensaje"
FreeLibrary lb
End Sub
Pero no me funciona. Alguien puede ayudarme?
Muchas gracias.
