Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Thaorius en 10 Diciembre 2005, 21:03 pm



Título: Una duda al cargar dll's.
Publicado por: Thaorius en 10 Diciembre 2005, 21:03 pm
Hola!

Miren, nesecito cargar los plug-ins para mi aplicacion. Hasta hay no problem. Cargo los plug-ins y los inicio para que se agreguen al menu y lo que haga falta.
El problema es que tambine se tienen que poder agregar a una toolbar. no es problema agregarlos al toolbar, sino hacer la accion nesesaria al hacer clcik en un boton del toolbar. Lo mismo con el menu.

Yo cargo los plugins con.
Código:
Public dll$, temp$
Dim obj

Public Sub LoadPlugIns()
On Error GoTo error:
dll = Dir(App.Path & "\PlugIns\*.dll", vbNormal)
Do Until dll = ""
 
    dll = Left(dll, Len(dll) - 4)
    temp = dll & "." & "Main"
    lblLoading.Caption = "Cargando PlguIns\" & dll & ".dll..."
    Set obj = CreateObject(temp)
    obj.Init Me
    dll = Dir()
Loop
mdiMain.Show
Exit Sub
error:
    MsgBox "Error al cargar PlugIns\" & dll & ".dll.", vbCritical, "Error"
    End
End Sub

el problema es que esta ncargados y en el menu y toolbar lla pero al hacer click en el toolbar yo no puedo acceder al objeto; porque si se fijan este cambia de plug-in cada vez para cargar el siguiente. Y si yo vuelvo a cargar el plug-in al hacer click tendria problemas porque el plug-in estaria cargado varias veces y no se mantendria andando 1 solo continuamente.
Se me ocurrio usar un array  de 255 elementos global para cargar los plug-ins y haci tener acceso a ellos. Pero tira un error("el subindice esta fuera del intervalo.").

Lo intente con:
Código:
Public dll$, temp$
Dim obj()
Dim i
i = 0
Public Sub LoadPlugIns()
On Error GoTo error:
dll = Dir(App.Path & "\PlugIns\*.dll", vbNormal)
Do Until dll = ""
 
    dll = Left(dll, Len(dll) - 4)
    temp = dll & "." & "Main"
    lblLoading.Caption = "Cargando PlugIns\" & dll & ".dll..."
    Set obj(i) = CreateObject(temp)
    obj(i).Init Me
    i = i + 1
    dll = Dir()
Loop
mdiMain.Show
Exit Sub
error:
    MsgBox "Error al cargar PlugIns\" & dll & ".dll.", vbCritical, "Error"
    End
End Sub

Que esta mal o como tendria que hacer para que los cargue dentro de la matriz?

Otra cosita: El mdiMain como el nombre lo dice es un mdi. Me gustaria saber como hago para abrir en el mdi un formulario mdichild que esta en la dll de un plug-in.

Saludos y espero me ayuden.