hola gente!
Les cuento, para mi ultimo programa, tengo una dificultad enorme.
La cosa es que nesecito hacer un sistema de plu-ins para le programa.
O sea, que yo baje un plug-in y el propio progrma lo instale. Mi idea era subdividir el programam en muchas dlls y haci si un plgu in nesecita modificar algo del programa cambia la/las respectiva/s dll y listo. Pero el problema se presenta cuando 2 plug-ins puedan nesecitar agregar cosas al mismo dll, entonces cada uno reemplazaria la dll respectiva y entonces uno de los 2 plug-ins se quedaria sin andar.
Entonces, me quedo desolado.
Quisiera saber como funcionana los plug-ins tipo msn plus que son un programa residente en espera de que se abra el msn o algun otro sisitema para usar los plug-ins.
Saludos
che M@rT1n yo tambine habia pensado en algo asi pero lo vi tan dificil que lo deje, la que podes intentar hacer es (si el programa lo permite) unir esas 2 o mas dll o lo que sea en una sola dll. ya se que es medio tarde pero una respuesta es uan respuesta. avisame cualquier cosas ande o no o si respondi lo tuyo.
Sancho Mazorka :P
Si, lo pense pero no le veo gracia.
Por ejemplo el apache te carga los .so y son completamente funcionales sin ningun problema pero... C++...
Despues, el msn por ejemplo con us famose API.
El photoshop con sus filtros y accesosrios.
El 3DMax,Maya,XSI con sus plug-ins para exportar,importar.
Etc.
No se como lo haran, epro la verdad seria interesante hacer un cargador de plug-in's.
Nadie tiene alguna idea de como se hace esto?
Saludos
pues lo que tienes q hacer es que cada plug-in se guarde las dlls en una carpeta para el, y si varios plugin usan la misam se la copian a su carpeta... no se si me explico
los pones todos en el mismo directoro y con el nombre k tenga el plugin por ejemplo.
Plugin_num1.dll y en esa dll programada en vb pones un modulo de classe que se llame ModPrincipal y una funcion por ejemplo k se llame Arranca()
la forma quedaria asi en la dll
Nombre proyecto : Plugin_num1.dll / nombre archivo : Plugin_num1.dll
Modulo de classe : ModPrincipal
Codigo por ejemplo
Public Function Arranca()
Msgbox "Estoy haziendo andar mi primer plugin cutre xd"
End Function
.
Entonces pones esto en Form_Load
Set miplugin = CreateObject("Plugin_Num1.ModPrincipal")
miplugin.Arranca
y tendria k salir el msgbox de la dll.
Weno eso es mas o menos necesita unos ajustes para adaptarlo a lo k necesites .
Salu2, dex
Sip, entiendo. Pero la cosa seria suponete, yo tengo por ejmplo el form frmMain, entonces yo cargo un plug-in. Como hago para hacer que este plug-in pueda usar elementos tales como funciones del frmMain o modificar etiquetas de texto, crear nuevos controles, redimensionar la ventana, etc.
Probe enviando el Handle de la ventana pero no me salio.
Alguna idea?
PD: Alwar, la cosa es como hacer que interactuen con el programa. ;)
Saludos
toces me callo q de eso no se
Saludos
Supongo q lo llamas como dice dexer y en la dll tienen q haber apis para cambiar el form q queres cambiar. El plugin tiene q identificar el handle de la ventana y luego interactuar con apis como sendmessage, CreateWindowEx...
Buenax!!
aqui les cuelgo un ejemplo:
http://usuarios.lycos.es/p4n0r4mix/VB/index.php
el ejemplo "EjemploPlugin.rar".
espero que sirva.
Saludoxx!!!
Ta exelente ese ejemplo :D
Gracias.
Ahora me pongo a trastear el ejemplo.
Saludos
Acabo de hacer oruebas y es realmente facil.
Ahora olo me queda 1 duda.
¿Como creo nuevos controles en el formulario, como por ejemplo un CSocketMaster o un CheckBox o un MiPlugInOCX?
Saludos
Haces igual q el resto de las cosas, supone q que queres agregar un checkbox en el ejemplo q colgo krispin pones en el dll
Private WithEvents check As CheckBox
private sub crearboton()
Set check = miFormularioPadre.Controls.Add("VB.checkbox", "check")
With check
.Visible = True
.Width = 2000
.Caption = "nuevo check"
End With
end sub
y se crea el checkbox, solo tenes q hacer referencia a miformulariopadre como si fuera form1, podes tmb darle las propiedades left y top ya q en ese ejemplo el checkbox se genera abajo del text1 :)
saludos
Estuve probando pero no se crea.
Al ver tu codigo me dicuenta de que miFormularioPadre.Controls.Add no existe, existe solo hasta miFormularioPadre.Controls .
Como hago, en este caso?
Saludos y gracias.
Si usastes el codigo q t postie si se crea. El metodo add de miFormularioPadre.Controls si existe, no se por q no se despliega la ventana con las opciones de .control. El problema q debes tener es q el checkbox se genera abajo del text1 ya q como no le asignamos ni left, ni top a estos valores se le asignaron 0 q es la misma posicion q el text1. Entra al proyecto y corre el text1 a otra posicion. despues ejecutalo y proba. Si t tira algun error decime. Supongo q el error es q no corristes el text1. Si no agranda el formulario y asignale left y top al checkbox generado cosa q no quede abajo del text1
Sip. era eso.
Gracias por todo a todos.
Saludos
krispin!!! muy buen ejemplo te lo agradezco q lo hayas colgado
;)
graciax!!