referencias a dll

josela
17 de Noviembre del 2005
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.