¿Podéis ayudarme a aprender algo sobre programación de un dll?
Hola, de antemano mil gracias por tu ayuda. El motivo por el cual escribo, es para ver si tu me puedes ayudar a conocer sobre la programación de un dll, aunque sea con un ejemplo. Gracias
A ver, la pregunta es bastante compleja, pero intentaremos darte una respuesta satisfactoria, lo primero que te digo es que se puede desarrollar en cualquier lenguaje con soporte para la tecnología COM (Component Object Model), es decir Visual Basic, Visual C++, Visual J++, Visual FOX, y en todos los lenguajes que tengan soporte para COM. Yo solo tengo experiencia en el desarrollo de componentes en Visual Basic y en Visual FOX. Primero que nada hay que tener en claro que las dll son un conjunto de clases que poseen propiedades o datos miembros y los métodos (funciones) que manejan esos datos o propiedades (es muy conveniente manejar la teria de POO, programación orientada a objetos, soluciona un montón de aspectos). En Visual Basic cuando se abre el selector de proyectos se elige la opción Activex Dll. Lo primero es dar un nombre al proyecto, el cual puede contener más de una clase (o módulos de clases en el lenguaje de VB), supongamos que queremos desarrollar una dll que maneje un hotel, le ponemos al proyecto XYZHotel (es solo el nombre, supongamos que nuestra empresa se llama XYZ), luego a nuestra primera clase le ponemos el nombre huésped, la cual sera la clase que contenga los datos del huésped (nombre, identidad, edad, sexo, etc) los cuales serán nuestros datos miembros los cuales se deben declarar como variables, ñuego tendremos los diferentes métodos que serán las actividades que realiza el cliente (realizar reserva, registrarse, solicitar room service, etc). Estos métodos se implementan a través de funciones (function o sub, según sea el caso), luego debemos grabar y debemos asignar los nombres de los archivos correspondientes al proyecto y a la/las clases que definamos. Por ultimo las opciones para compilar el proyecto son las siguientes. En el menu proyectos->Propiedades del proyecto, tenemos la siguiente configuración, si falta algo o tienes alguna duda consúltame porque estoy en una maquina que no tiene VB y estoy consultando un libro en ingles: Pestaña General deben estar checkeadas las opciones de ejecución desatendida, y actualizar controles activex Pestaña Componente, se debe seleccionar la opción Compatibilidad binaria y le pones la ruta hasta donde se va a alojar la dll. Luego compilas y ya tienes tu dll. Lo más importante a tener en cuenta es que una dll solo guarda propiedades y métodos y los métodos son accesibles desde una página asp o desde una aplicación del escritorio de forma indistinta, siempre y cuando se pasen los parámetros de forma correcta. Una característica muy interesante es que se puede acceder al modelo de objetos de ASP, para utilizar por ejemplo el Response. write. Te lo muestro con un ejemplo. En VB tienes que agregar en el menu Proyecto->Referencia, buscas Microsoft Active Server Pages y lo marcas. Luego debes declarar un objeto del tipo ScriptingContext, un método OnStartPage, el cual se invoca al cargarse una página asp y pasa como parámetro un objeto de este tipo, esto es algo automático y totalmente transparente para nosotros, solo hay que declarar el método que lo recibe e inicializarlo para poder usarlo. Luego en la página asp creo un objeto perteneciente a la clase que estamos desarrollando, invoco el método apropiado y listo. Lo vemos con un ejemplo muy corto. -------------------------------------------------------------- ' En la DLL dim objGlobal as ScriptingContext sub OnStartPage (objSc as ScriptingContext) ' Inicializo la propiedad de la clase objGlobal = objSc End Sub Sub MostrarMensaje() ' Mostramos el mensaje en la pagina objGlobal.Response.Write ("Mensaje generado desde la dll") End Sub --------------------------------------------------------------------- ' A todo esto ya tenemos armado un proyecto de nombre XYZHotel y ' la clase se llama huesped, estos son los nombres de los que se ' compone nuestra clase que invocamos en la pagina asp --------------------------------------------------------------------- <%@language=jscript%> <HTML> <% // Creamos el objeto // Usamos Server.CreateObject("nombredeproyecto.nombredeclase") objHuesped = Server.CreateObject("XYZHotel.huesped") // Invocamos el metodo objHuesped.MostrarMensaje() //Destruimos el objeto objHuesped = null %> </HTML> ---------------------------------------------------------------- Espero haberte aclarado algo, hay un libro muy bueno, esta en ingles y se llama Beginning Components for ASP, te lo recomiendo Autores: Anderson, Homer y Robinson ISBN: 1-861002-88-2 Cualquier duda, a tu servicio.