Desarrollo de un paquete de programación del MC68000 para un entorno Windows mediante C++ Builder.

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Desarrollo de un paquete de programación del MC68000 para un entorno Windows mediante C++ Builder."

Transcripción

1 Desarrollo de un paquete de programación del MC68000 para un entorno Windows mediante C++ Builder. Creación de un editor de código y un macroensamblador AUTOR: Eloy Vilella Guiu DIRECTOR: Enrique Cantó Navarro FECHA: Abril 2004

2 ÍNDICE GENERAL: 1 INTRODUCCIÓN OBJETO DEL PROYECTO TITULAR ANTECEDENTES POSIBLES SOLUCIONES Y SOLUCIÓN ADOPTADA MEMORIA DESCRIPTIVA INTRODUCCIÓN AL C++ BUILDER DESCRIPCIÓN GENERAL CORRECCIÓN DE BUGS DEL PROGRAMA ORIGINAL Introducción: Bugs corregidos: ESTRUCTURA EN DLL s Introducción: Definición de una DLL: Comunicación con la DLL: Creación de una aplicación con una estructura con DLL: CREACIÓN DEL INTERFACE DE USUARIO Introducción: Estructura principal: Creación del editor de texto Creación de la página ensamblador Creación de la página linkador Creación de la página proyecto Adaptación de tamaños: MACROS Introducción: Concepto general: Diseño estructural: Definicion: Calling Method: Argumentos: Labels inside: USO DEL REGISTRO DE WINDOWS Introducción:

3 Estructura: Acceso al registro: Aplicación del registro en el macroensamblador: DESCRIPCIÓN INTERNA DEL PROYECTO Esquema del proyecto: Detallado de los ficheros: Descripción de las clases: Descripción de las funciones: CONCLUSIONES PLIEGO DE CONDICIONES CONDICIONES GENERALES CONDICIONES ECONÓMICAS CONDICIONES FACULTATIVAS CONDICIONES TÉCNICAS ANEXOS CÓDIGO DEL PROGRAMA

4 1 INTRODUCCIÓN 1.1 OBJETO DEL PROYECTO El objeto del presente proyecto es el desarrollo de un paquete de programación del MC68000 de Motorola. Esto consiste en el diseño de un interface gráfico de usuario que debe integrar un editor de texto, un ensamblador y un linkador, además de tener acceso a los programas de simulación y de comunicaciones (ambos proyectos ajenos al presente). El interface, además, debe ser soportado por una plataforma Windows 9X, El programa ensamblador debe admitir el uso de macros. 1.2 TITULAR El titular del presente proyecto es: -Nombre: Escola Tècnica Superior d Enginyeria (E.T.S.E.) Universitat Rovira i Virgili -Dirección: Av. Països Catalans, 26 Campus Sescelades Tarragona Telf: ANTECEDENTES Hasta el momento en los laboratorios docentes del DEEEA se disponía de un Ensamblador y un Linkador (además de un simulador y un software de interface del PC con el módulo docente) que tan sólo eran soportados por el sistema operativo DOS. En proyectos anteriores se adaptaron los programas de simulación y de comunicaciones con éxito a la plataforma de Windows. En un último proyecto se trató de adaptar los programas ensamblador y linkador pero resultó un fracaso. Algunos de los problemas importantes que se encontraron fueron la falta de portabilidad del código, la multitud de bugs contenidos en el programa, la excesiva simplicidad del interface de usuario (operabilidad insuficiente), el caotismo y la falta de limpieza en la programación... Las funciones de entrada y salida fueron adaptadas a la plataforma de Windows, aunque el código no fue reciclado de la forma necesaria. 4

5 1.4 POSIBLES SOLUCIONES Y SOLUCIÓN ADOPTADA Inicialmente se optó por buscar programas robustos para iniciar el trabajo sobre una base sólida. Se visitaron infinidad de websites de empresas importantes del sector y otras de recursos informáticos en la red, pero resultó imposible encontrar la versión freeware de algún cross assembler comercial y/o de calidad con los códigos fuente disponibles. No hubo otra elección que basarse en el ensamblador y linkador usados en los laboratorios del DEEEA adaptados a la plataforma de Windows en proyectos anteriores. La primera tarea fue realizar las adaptaciones necesarias a la versión y compilador utilizados (C++ Builder 5): la manera de pasar los argumentos a las funciones y la omisión del uso de variables long debido a que el sistema operativo sobre el que trabajaba el programa original era de 16 bits (DOS) cuando Windows es un SO de 32 bits. El problema se resume en: DOS: int = 16bits WIN: int = 32bits long int = 32bits long int = 64bits (no lo usamos) Una segunda adaptación consistió en la eliminación de las directivas del lenguaje C obsoletas. Muchas han sido modificadas por otras directivas más potentes en el lenguaje C++. La palabra clave malloc se utilizaba en C para reservar zonas de memoria de una forma dinámica, pero que podía causar graves problemas de colisiones en caso de un uso demasiado liviano con estructuras complejas. Toda estructura reservada en memoria con la palabra malloc debe ser eliminada mediante el uso de la directiva free y la inicialización del puntero utilizado. El C++ ha introducido las nuevas directivas new y delete que tienen una funcionalidad similar a las anteriormente mencionadas pero con una robustez y una potencia muy superior. Se ha tenido que sustituir las palabras malloc y free, además de adaptar el código relacionado, en los trozos de código donde se usan listas complejas o árboles binarios. Se pudo reciclar poco del proyecto anteriormente mencionado. El interface de usuario original fue desechado por su excesiva simplicidad y su falta de operabilidad, además hubo que trabajar la portabilidad de las funciones principales de los programas ensamblador y linkador. El proceso seguido para optimizar el paquete de programación fue el siguiente: 1. Realizar adaptaciones necesarias a la versión y compilador utilizados (C++ Builder 5): sintaxis de las cabeceras de las funciones y omisión del uso de variables long. 2. Eliminar interface original. 5

6 3. Eliminar los ficheros inútiles para la aplicación y limpiar el directorio de archivos de la antigua versión. 4. Tratar la portabilidad de las funciones principales del ensamblador y el linkador. 5. Estructurar, ordenar y limpiar el código original. 6. Tratar de entender el complejo funcionamiento del ensamblador y linkador. 7. Crear un interface temporal. 8. Corregir una infinidad de bugs del programa. 9. Diseñar el programa en una estructura con DLL (subdivisión de los ficheros en carpetas). 10. Crear el interface definitivo. 11. Diseñar el editor de código. 12. Ampliar el programa a macroensamblador. 13. Adaptar aplicación al uso del Registro de Windows. 14. Creación de la herramienta de procesado de proyectos. 15. Redacción de la memoria definitiva del proyecto. El programa se ha diseñado, como se ha mencionado en la lista anterior, en una estructura con DLL. El esqueleto de la aplicación es el siguiente: Interface (Editor+Plataforma) Simulador (exe) Comunicaciones (exe) Ensamblador (dll) Linkador (dll) 6

7 Figura 1 Esqueleto de la aplicación El paquete de programación debe ser capaz de procesar un fichero fuente de la forma siguiente: Figura 2 Proceso general Se podría haber realizado el proyecto con cualquier tipo de los diversos lenguajes visuales para Windows existentes en el mercado, como por ejemplo el Visual C, Visual Basic... pero finalmente se ha optado por el C++ Builder de Borland por diversas razones, entre las que podemos destacar su gran potencia heredada del C, la posibilidad de programar en modo orientado a objetos (POO) como en C++ y, la última y más importante, debido a que facilita y ahorra mucho tiempo a la hora de programar, ya incluye clases creadas con lo cual se agiliza en gran medida la generación de código nuevo y complejo. En resumen, mediante C++ Builder se consigue una programación orientada a componentes (POC). Un componente es similar a una clase, pero además consta de propiedades y eventos. Cada componente nuevo de una clase existente en las librerías del compilador, genera una serie de expansiones de código que integran en el documento un componente plantilla. Con este proceso de standarización ahorra tiempo y esfuerzos para programar dichos objetos, lo cual suele ser bastante engorroso y complejo en lenguajes como C++. 7

8 2 MEMORIA DESCRIPTIVA 2.1 INTRODUCCIÓN AL C++ BUILDER A continuación se hace una breve introducción al lenguaje seleccionado finalmente para realizar el proyecto. El C++ es una extensión o ampliación del lenguaje C y a diferencia de éste último, permite programar en modo orientado a objetos. Anteriormente, la gran mayoría de las aplicaciones desarrolladas para Windows eran realizadas en lenguaje C, del mismo modo que las librerías de las funciones de las API. Sin embargo estas aplicaciones fueron construidas pensando en objetos, de forma que lo más conveniente era usar un interface basado en objetos, que realizara las llamadas a las API de Windows. Con la finalidad de facilitar la programación orientada a objetos se crearon las frameworks. Las framework son librerías que encapsulan las técnicas de programación más empleadas. Una aplicación basada en framework en comparación con otra que se basa directamente en llamadas a las API contiene menos código, con lo cual es más óptima desde un punto de vista temporal y es mucho más fácil de crear. Además el uso de MFC permite el uso de funciones de los lenguajes C o C++ y el uso directo de API. Los frameworks para Windows que más se han extendido en la actualidad son el MFC (Microsoft), OWL (Borland) y VCL (Borland). Las librerías VCL (Visual Component Library) son las que se han utilizado en este proyecto. Fueron desarrolladas originalmente para el compilador de Pascal de Borland, el Delphi. El nuevo compilador Borland C++ Builder incluye las VCL (además de poder compilar programas basados en OWL, MFC y Delphi). Este framework es el más avanzado ya que permite una auténtica programación visual C++ basada en componentes y formularios que pueden funcionar sin ficheros.dll adicionales. Además, permite la creación de aplicaciones de mediana complejidad para Windows en un tiempo relativamente corto. A continuación se explicarán algunos de los nuevos conceptos (y otros no tan nuevos) introducidos con la programación orientada a objetos. Se tratarán conceptos como clases, constructores y destructores entre otros. Éste es un tema bastante complejo pero se tratará de resumir y simplificar los conceptos (consúltese libro de programación C++ para más información): a) Class ( clase): Se trata de una de las extensiones más importantes que se han introducido con la programación orientada a objetos (POO). Es una wordkey con efectos muy similares a la palabra struct, pero con las siguientes diferencias: 8

9 o En una estructura, los campos de datos y las funciones son públicos de modo predeterminado, lo que significa que se podrá acceder a los campos de datos sin restricciones. o En una clase, son privados de modo predeterminado, lo que significa que sólo se pude acceder a los distintos campos por medio de ciertas funciones. En definitiva, struct no asegura la protección de los campos. Pero la búsqueda de esta protección es una de las bases de la programación orientada a objetos. class CLS1 private: int x; float y; void g(); public: void f(); Código 1 En el código anterior, los campos y funciones contenidos en la sección private no son accesibles directamente por el usuario de la clase. La función pública f puede ser llamada desde cualquier función del programa. Ésta es la única función que tiene acceso a la función privada g. Y sólo las funciones f y g pueden manipular los campos privados x e y. b) Constructor: Un constructor permite que se ejecute automáticamente una función de inicialización, llamada constructor, en la creación de un objeto perteneciente a una clase. El constructor también es llamado en la creación de un objeto con new. c) Destructor: Una función destructor permite liberar zonas de memoria que se han asignado dinámicamente (a menudo en el constructor) o bien cerrar un archivo abierto en el constructor. El destructor se llama también en la destrucción de un objeto con delete. d) Puntero this: En una función miembro, this (palabra reservada del C++) designa un puntero al objeto que se está tratando. This contiene la dirección de dicho objeto. 9

10 e) La herencia: La técnica de la herencia constituye sin duda la aportación más interesante de la POO. Permite crear una clase a partir de otra, heredando propiedades de esta última. Class A protected: int x; void f(); public: void g(); private: void h(); class B::public A private: int y; public: void j(); Código 2 Se ha creado en primer lugar una clase A que sirve de base para crear otras clases (clase de base). La clase B se construye a partir de A (clase derivada). En este caso, los campos y funciones x, f, g y h de la clase A pasan a ser campos de la clase B. o Los campos protected pueden ser accedidos desde B y sus derivadas. o Los campos public pueden ser accedidos desde todo el programa. o Los campos private no pueden ser accedidos. En caso de que la clase B se defina private de A, las palabras clave pasan a significar lo mismo pero anulando el acceso de las clases derivadas de B en todos los casos. 10

11 2.2 DESCRIPCIÓN GENERAL CORRECCIÓN DE BUGS DEL PROGRAMA ORIGINAL Introducción: Los programas ensamblador y linkador originales contenían múltiples errores de programación. Tras solucionar los problemas de portabilidad del código y adaptar el programa original al lenguaje y versión utilizados, se hizo un trabajo importante para comprender el código y entender el método de trabajo de los programas. Cabe resaltar que un ensamblador y un linkador son programas muy complejos. En apartados anteriores se han añadido esquemas que han sido elaborados para simplificar este trabajo de comprensión. En el apartado siguiente se procede a explicar algunos de los bugs corregidos del programa original. Muchos han sido omitidos por su parecido o poco interés para el proyecto, y otros no han sido descubiertos todavía. Para su corrección se ha tenido que realizar un trabajo de localización (mucho código y muy complejo), entendimiento perfecto del código, comprensión del lenguaje ensamblador y posterior corrección del error. El bug aparentemente más simple puede ocasionar serios problemas en su corrección Bugs corregidos: (DDD: destino, FFF:fuente) a) MOVEQ #0,D1 El nemónico moveq mueve un byte en modo direccionamiento inmediato a un registro de datos de 32 bits. El valor de 8 bits es extendido en signo en el registro de datos una vez transferido. Ensamblado general: 0111 DDD0 BBBB BBBB B:dato Ensamblado de la línea (anterior): = 0x7280 Ensamblado de la línea (correcto): = 0x7200 El problema estaba en que ensamblaba el dato #0 como 80 (cero negativo) 11

12 b) CMPM.B (A0)+,(A1)+ El nemónico cmpm resta el operando origen del operando destino y actualiza los flags según el resultado. Los operandos se introducen siempre en modo de direccionamiento con postincremento. Ensamblado general: 1011 DDD1 AA00 1FFF A:size Ensamblado de la línea (anterior): = 0xB388 Ensamblado de la línea (correcto): = 0xB308 El problema estaba en que ensamblaba el size=10 (tamaño long), es decir, ensambla cmpm.l (a0)+,(a1)+ La función que codifica la size (mete los 1 s y 0 s) es: cmpm ( ) if (size==2) valor+=64; //tratamiento.w else if (size==1) valor+=128; //tratamiento.l if (aa!=6 bb!=6) RETURN (DIR_INCORR); return sp(valor+opp1.op<<9)+8+op1.op); La codificación interna del ensamblador es:.b >>> size=1.w >>> size=2.l >>> size=4.s >>> size=8 nada >>> size=32 El error se encuentra en el else if (linea 2), debe entrar si size==4 (LONG) c) DIVS.W D0,D2 y DIVS.L D0,D2 El nemónico divs divide el operando con signo destino por el operando con signo origen y almacena el resultado en el destino. La operación tiene 4 modos de trabajo según la sintaxis usada. Ensamblado general: 1000 DDD1 11MM MFFF M:modo direccionamiento de fuente Ensamblado de la línea (anterior): = 0x85C0 Ensamblado de la línea (correcto): = 0x85C0 12

13 El error que nos muestra el ensamblador es Error de tamaño incorrecto. En realidad en la familia 68K no existe la opción.w/l en la operación DIVS. Se trata de un error de concepto del programador del código original. d) CMPA.L A0,A1 y CMPA.W A0,A1 El nemónico cmpa resta el operando fuente del registro de direcciones destino y actualiza los flags según el resultado. Ensamblado general: 1011 DDDM MMFF FFFF M:modo direccionamiento de fuente El problema está en que la familia 68K no distingue entre W/L Solución: dependiendo de la variable size, codificará el modo de una forma u otra. e) JMP L1 El ensamblador trataba este nemónico haciendo un salto relativo respecto al Program Counter (PC): 4EFA XXXX Existían problemas cuando la instrucción anterior era del tipo DC y ocupaba un número de bytes impares Solución: existe un bug posterior en el que luego resolveremos los problemas de la directiva DC y la paridad del PC. Sin haberlo resuelto todavía, usaremos uno de los recursos de la instrucción JMP. Podemos codificarla para que haga el salto a una dirección absoluta (en lugar de relativa al PC): 4EF9 XXXX XXXX 13

14 f) DC.B... El nemónico DC es una directiva del ensamblador usada para mapear datos en memoria. Ensamblado general: XXXX XXXX XXXX XXXX X:carácter de la cadena Este nemónico tenía dos bugs diferentes: a) Cuando el número de caracteres de la cadena es impar, entonces el ensamblador reserva un número impar de bytes (siguiente instrucción en zona impar). El ensamblador entonces llenaba los huecos libres con espacios y añadía otra línea en el fichero de listado con el formato: xxxxxx : 00 :. La solución adoptada es la de incrementar el Program Counter para que la siguiente instrucción se encuentre en posición par. b) En las mismas condiciones del punto anterior, el ensamblador asigna a las 2 siguientes instrucciones al DC la misma posición de memoria. El problema viene por la línea añadida para tener un número de bytes par. La solución adoptada esta vez se basa en concatenar (cuando el número de caracteres es impar) la línea ensamblada con 00 y rellenarla entonces los huecos libres con espacios. De esta manera, no hay necesidad de añadir una línea auxiliar al fichero listado. g) Direccionamientos (d16,an) y (d8,an,xn) MOVE.B normalmente ensambla: 00SS DDDd ddff ffff S: size (.B=01,.W=11,.L=10) D: reg d: modo direccionamiento F: reg f: modo direccionamiento Según el direccionamiento, a veces se añade una palabra más (2 bytes = 4 hexa): a) (d16,an) XXXX XXXX XXXX XXXX (desplazamiento) b) (d8,an,xn) ARRR S000 XXXX XXXX A:!A/D (An) R: reg (Xn) S: size 14

15 h) MOVE.B 3(A0),D1 (-3 se codifica en hexadecimal con FFFD) Ensamblado de la línea (anterior): = 0x = 0xFFFF = 0xFFFD >>> 1228 FFFF FFFD Ensamblado de la línea (correcto): = 0x = 0xFFFD >>> 1228 FFFD Problema: Solución: Cuando el desplazamiento es negativo, el programa extiende el signo a 32 bits (4 bytes). Por ello nos ensambla las dos palabras: la primera con el valor de 16 bits y la segunda con el signo extendido. Cuando el desplazamiento sea negativo, recortamos una palabra del valor del desplazamiento ensamblado antes de concatenarlo con la instrucción move ensamblada. Para corregirlo, accederemos a la función de la directiva DC y buscaremos el caso de direccionamiento aa=10 (línea 520 de Func.cpp) 15

16 i) MOVE.B 3(A0,D3),D1 (-3 se codifica hexadecimal con FD) Ensamblado de la línea (anterior): = 0x = 0xFFFF = 0x3FFD >>> 1230 FFFF 3FFD Ensamblado de la línea (correcto): = 0x = 0x30FD >>> FD Problema 1: Solución: Problema 2: Solución: Mismo que en el caso anterior Se accede a la función de la directiva DC y se busca el caso de direccionamiento aa=2 (línea 533 de Func.cpp) Si nos fijamos en el formato de la palabra añadida con este tipo de direccionamiento, vemos que los 2 primeros bytes no deben extender el signo tampoco, ya que se usan para otros fines. En un principio, simplemente preparaba la palabra (para escribirla en el fichero listado) concatenando los carácteres 00 con los 2 bytes útiles del desplazamiento (FFFF FFXX). Pero surgió un problema: simplemente superponía los carácteres 00 a la información necesaria. La solución que se adoptó finalmente fue restarle al desplazamiento FFXX el valor equivalente a FF00 j) GLOBAL etiqueta Supongamos un código con la estructura siguiente: global... valor JMP valor... valor... 16

17 El programa contenía un error en la función int valor(char *) del fichero parser.cpp que erraba en el tratamiento de la etiqueta de tipo global. El código de dicha función queda de la forma siguiente tras ser modificado: static int valor (char *puntero) struct arbol *r; r=buscar_rama(raiz,puntero); if (r!= NULL) reub=reub2; switch (r->tipodevariable) case 0 : reub2=0; break; case 1 : reub2=1; break; case 2 : reub2=0; segpasadaparser=1; break; case 3 : if(segunda_pasada==2) longjmp(ebuf,16); break; case 4 : reub2=0; break; case 5 : reub2=1; break; return r->valor; if (segunda_pasada==2) longjmp(ebuf,16); reub2=0; if (codigoreub) reub2=1; return 0; Código 3 17

18 j) Árboles binarios: En el apartado referente a las macros se explica el procedimiento que sigue el programa cuando encuentra una etiqueta de definición de macro del tipo macro. Se informa de que el programa crea una estructura del tipo árbol binario llamada arbolm para almacenar los objetos macro y rellenar los campos necesarios.... Figura 3 Árboles binarios Otro caso de utilización de una estructura compleja como la anterior es en la definición de etiquetas en el código fuente. Cuando el ensamblador encuentra la palabra clave ETI u otro sistema de definición de una etiqueta en el fichero asm, el programa crea un objeto del tipo arbol que corresponde al componente de un árbol binario. La definición del objeto arbol y el objeto arbolm es : struct arbol struct arbol *arbol_der; struct arbol *arbol_izq; char label[16]; int valor; int tipodevariable; ; struct arbolm struct arbolm *arbol_der; struct arbolm *arbol_izq; char label[16]; AnsiString text; int llamadas; int argumentos; ; Código 5 Código 4 Para el manejo de una estructura del tipo árbol binario compuesta por objetos de la clase arbol se utilizan punteros a objetos de dicha clase. Mediante una serie de funciones recursivos (funciones que son llamadas desde el interior de su propio código) el puntero recorre el árbol con un sistema inteligente para localizar el objeto buscado. La declaración de estas funciones pueden ser localizadas en el fichero ens.h: struct arbol *buscar_rama (...); struct arbol *insarbol(...); void listar_arbol (...); void eliminar_rama(...); void eliminar_arbol (...); Código 6 18

19 Las funciones siguientes son referentes a la estructura de árbol binario utilizada en el caso de la definición de macros. La declaración se puede encontrar en el fichero macros.h: struct arbolm *buscar_rama (...); struct arbolm *insarbol(...); void listar_arbol (...); void eliminar_rama(...); void eliminar_arbol (...); Código 7 Todas las funciones referentes a los objetos tipo arbol (excepto eliminar_arbol) fueron desarrolladas por el programador del ensamblador original. Sin embargo, el programa original procedía de forma incorrecta: fin: //cerrar ficheros fclose(ff); fclose(fs); remove("..\\usuario\\xxx.xxx"); fclose(fd); if (flistado!=null) flwrite(); fclose(fl); //Falta recorrer los arboles de macros y etiquetas y borrarlos punteros if (errores) remove(fdestino); throw "ENS1"; throw "ENS0"; Código 8 El código anterior son las últimas instrucciones ejecutadas para cualquier fichero fuente en la DLL ensamblador. Una vez compilado el código fuente, se procede a cerrar los ficheros utilizados y se lanza una excepción. Podemos comprobar que no se libera la memoria reservada para los objetos de los árboles binarios ni se inicializan las variables globales puntero creadas en la cabecera del fichero ens68k.cpp. Las carencias anteriores nos provocan errores de ejecución del programa ensamblador en compilaciones posteriores y nos puede provocar problemas de memoria. 19

20 La solución adoptada fue desarrollar las funciones eliminar_arbol(arbol *) y eliminar_arbol(arbolm *). Estas funciones son algorismos recursivos que recorren el árbol hasta sus extremos y eliminan los componentes desde las ramas hasta la raiz de la estructura. El código en ambos casos sigue el siguiente esquema: void eliminar_arbol (struct arbol *a) if (!a) return; eliminar_arbol (a->arbol_izq); eliminar_arbol (a->arbol_der); delete(a); a=null; Código 9 Las cinco funciones referentes a los objetos tipo arbolm han sido recicladas y modificadas de sus respectivas referentes a arbol. El código puede ser consultado en el anexo de Código del Programa en el fichero arboles.cpp. 20

21 2.2.2 ESTRUCTURA EN DLL s Introducción: El principal objetivo del proyecto ha sido crear una plataforma de trabajo donde se integren el editor, el ensamblador y el linkador. Una consecuencia directa ha sido la aparición de problemas en el orden y en la legibilidad del código. Puede resultar caótico tener varios programas complejos en una misma aplicación. La solución adoptada para resolver los problemas ha sido la estructuración de la plataforma en un diseño de programa principal y DLL s. Figura 4 Estructura en DLL Definición de una DLL: DLL es una acrónimo de Dynamic Link Library (o librería de acceso dinámico). Se trata de un archivo que contiene funciones que se pueden llamar desde aplicaciones u otras DLL en tiempo de ejecución. Los desarrolladores utilizan las DLL para poder reciclar el código y aislar las diferentes tareas. Las DLL no pueden ejecutarse directamente, es necesario llamarlas desde un código externo. Ventajas principales de las DLL: Las DLL nos ahorran espacio en disco. Si tenemos 501 aplicaciones y utlidades que utilizan la xxx.dll, montando ésta estáticamente en cada aplicación se incrementa el espacio utilizado en 500 veces el tamaño de la xxx.dll Las DLL ahorran memoria al utilizar un técnica de memoria compartida llamada "mapeo de memoria". Windows carga las DLL en la zona común global de memoria y mapea el rango de direcciones de la DLL en el espacio de direcciones de cada aplicación que hace la carga de dicha DLL. Por tanto, 21

22 procesos diferentes que utilizan por ejemplo la xxx.dll, pueden compartir la misma instancia de la DLL en memoria sin necesidad de cargar copias de ella La localización de errores (bugs) es más sencilla debido a que un bug está típicamente localizado en una única DLL. Por tanto no necesitamos redistribuir toda nuestra aplicación, sino únicamente la DLL errónea para solucionar un problema Diferentes usos de las DLL: Enlace estático significa que se accede con una librería que contiene todos los OBJs necesarios. No es una DLL, sino una librería estática. La extensión suele ser.lib Enlace estático con una DLL significa que se accede con una librería import que contiene referencias a la DLL (nuestro caso) Cargar dinámicamente la DLL significa que debemos utilizar la función del API de Windows LoadLibrary Comunicación con la DLL: Como se ha definido anteriormente, las DLL representan paquetes ejecutables (EXE s complejos), así que no se pueden pasar argumentos tan fácilmente como en el caso de las funciones. La comunicación más importante entre el interface y las DLL son el paso de argumentos en las llamadas a las funciones principales de las DLL y los mensajes que devuelven las DLL mientras analizan el código y que deben ser mostrados al usuario mediante el interface. La parte de las llamadas se resolvió mediante la declaración de las funciones Ens68K(...) y Lnk68K(...) como IMPORT/EXPORT en el fichero.h de las DLL. No se puede interactuar con los objetos del formulario principal directamente desde un archivo de la DLL (informa de un linker error). Simplemente, debo tratar los datos puestos en el formulario antes de ejecutar la DLL correspondiente, pasando los datos necesarios a la DLL como argumentos: a) DLL ensamblador: se pasan el nombre de los archivos asm, obj y lst y la ruta de usuario b) DLL linkador: se pasa el nombre de cada archivo obj, si éste es absoluto o reubicable, el origen/fin (caso absoluto), y el nombre de los s28 y map y la ruta de usuario La parte de los mensajes es algo más compleja. Los mensajes no se pueden enviar en tiempo real, ya que se debería cortar la ejecución de la DLL cada vez, cosa dificil y poco práctica. La solución adoptada al problema ha sido crear una variable del tipo 22

23 AnsiString (este tipo se encarga de reservar zonas de memoria según el tamaño de la variable en tiempo de ejecución, además de proporcionar otra información como el tamaño...). Durante la ejecución de la DLL, cuando se debía enviar el mensaje pertinente, ahora se acumula en esta variable. Cuando se acaba la ejecución total de la DLL (ensamblado o linkado), entonces se llama desde el interface a una función creada previamente que imprime el contenido de la variable en el lugar adecuado. Pueden existir varias variables simultáneamente debido a que existen mensajes de salida y de errores Creación de una aplicación con una estructura con DLL: a) Creación de un proyecto normal (intefens.bpr) en la carpeta interface desde el que se llamará a las funciones principales de las DLL. El proyecto estará formado por interfens.bpr+cpp (proyecto) y Principal.cpp+dfm+h (ventana principal). En el archivo de llamada a las DLL s (Principal.cpp) se incluyen (#include) los archivos.h de las DLL (ensdll.h y lnkdll.h) Se deben adherir al proyecto interfens los archivos de librerías de las DLL (ensdll.lib y lnkdll.lib) b) Creación de otro proyecto con Dll Wizard (opción de creación) llamado ensdll.brp en la carpeta ensamblador (contiene todos los archivos importantes del ensamblador). Este proyecto contiene básicamente ensdll.brp+cpp+h (proyecto) y demás archivos importantes para ensamblador (*.cpp y *.h) contenidos en la carpeta c) Creación de la DLL del linkador de la misma forma que la anterior d) Edición especial de los archivos.h de la DLL (ejemplo ensamblador): #ifndef ensdllh #define ensdllh #ifdef DLL #define EXPORT_IMPORT declspec(dllexport) #define interfens "dllexport" #else #define EXPORT_IMPORT declspec(dllimport) #define interfens "dllimport" #endif EXPORT_IMPORT declaración de función/es principal/es de Dll (accesible desde el exterior) #endif Código 10 23

El Explorador es una de las aplicaciones más importantes con que cuenta

El Explorador es una de las aplicaciones más importantes con que cuenta El Explorador de Windows Características del Explorador de Windows Windows. El Explorador es una de las aplicaciones más importantes con que cuenta A través del Explorador se pueden realizar muchas tareas

Más detalles

Mi primer proyecto en Dev-C++

Mi primer proyecto en Dev-C++ Mi primer proyecto en Dev-C++ Para realizar esta actividad deberás disponer de un ordenador en el que esté instalado el Dev-C++. Debes ir realizando cada uno de los pasos indicados, en el mismo orden en

Más detalles

ESCUELA SUPERIOR DE INFORMATICA Prácticas de Estadística UNA SESIÓN EN SPSS

ESCUELA SUPERIOR DE INFORMATICA Prácticas de Estadística UNA SESIÓN EN SPSS UNA SESIÓN EN SPSS INTRODUCCIÓN. SPSS (Statistical Product and Service Solutions) es un paquete estadístico orientado, en principio, al ámbito de aplicación de las Ciencias sociales, es uno de las herramientas

Más detalles

Finalmente, aprenderá a interceptar y a manejar muchos de los eventos comunes que tienen los componentes y los formularios de Windows Form.

Finalmente, aprenderá a interceptar y a manejar muchos de los eventos comunes que tienen los componentes y los formularios de Windows Form. Sistemas expertos e Inteligencia Artificial,Guía 1 Facultad : Ingeniería Escuela : Computación Asignatura: Sistemas expertos e Inteligencia Artificial Tema: INTRODUCCIÓN AL IDE C#. Objetivo Identificar

Más detalles

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK. Introducción Java surgió en 1991 dentro de la empresa Sun Microsystems como un lenguaje de programación sencillo y universal destinado a electrodomésticos. La reducida potencia de cálculo y memoria de

Más detalles

www.aprendoencasa.com Curso Introducción JAVA Pág.: 1

www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 Introducción Java es un lenguaje basado en la programación orientada a objetos (POO), este tipo de programación va más allá del tipo de programación

Más detalles

TALLER COMPUTACIÓN II

TALLER COMPUTACIÓN II Prof. Martín Ferreyra TALLER COMPUTACIÓN II MANEJO AVANZADO DE MS WORD COMBINAR CORRESPONDENCIA Combinar Correspondencia Instituto Secundario John Kennedy Unidad 2. Combinar correspondencia (I) Mediante

Más detalles

Práctica1. Introducción a Microsoft Access. Qué es Access?

Práctica1. Introducción a Microsoft Access. Qué es Access? Práctica1. Introducción a Microsoft Access Los sistemas de información empresariales tienen como misión el proporcionar información precisa en el momento adecuado, tanto para la gestión y realización de

Más detalles

Combinar correspondencia

Combinar correspondencia Combinar correspondencia Mediante la opción Combinar correspondencia Word2010 nos permite incluir en un documento, datos almacenados en otro sitio. De esta forma podremos obtener copias de un mismo documento

Más detalles

UF0513 Gestión auxiliar de archivo en soporte convencional o informático

UF0513 Gestión auxiliar de archivo en soporte convencional o informático UF0513 Gestión auxiliar de archivo en soporte convencional o informático Tema 1. Sistemas operativos habituales Tema 2. Archivo y clasificación de documentación administrativa Tema 3. Base de datos Tema

Más detalles

CURSO DE PROGRAMACIÓN PHP MySQL

CURSO DE PROGRAMACIÓN PHP MySQL CURSO DE PROGRAMACIÓN PHP MySQL MASTER EN PHP MÓDULO NIVEL BASICO PRIMER MES Aprende a crear Sitios Web Dinámicos con PHP y MySQL 1. Introducción Qué es PHP? Historia Por qué PHP? Temas de instalación

Más detalles

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

En cualquier caso, tampoco es demasiado importante el significado de la B, si es que lo tiene, lo interesante realmente es el algoritmo. Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa

Más detalles

Joomla!: La web en entornos educativos. Capítulos 7 y 8

Joomla!: La web en entornos educativos. Capítulos 7 y 8 Joomla!: La web en entornos educativos Capítulos 7 y 8 Material actualizado a septiembre de 2012 Índice Índice de contenido 7. Menús...109 7.1. Introducción...109 7.2. Gestión de menús...109 7.3. Gestión

Más detalles

ADVISOR MODELO DE DESARROLLO

ADVISOR MODELO DE DESARROLLO ADVISOR MODELO DE DESARROLLO 1 1 INDICE 1 ÍNDICE... 2 2 ENTORNO... 3 3 AREA DE TRABAJO DE LA APLICACION... 3 4 BARRA DE ESTADO... 4 5 BARRA DE HERRAMIENTAS DE MENU... 4 6 MENU CONTEXTUAL... 6 7 MENU DE

Más detalles

1.- MENU DE CONTROL O MENU VENTANA: permite cerrar la ventana cambiarla de tamaño y pasar a otra ventana

1.- MENU DE CONTROL O MENU VENTANA: permite cerrar la ventana cambiarla de tamaño y pasar a otra ventana EXCEL PRÓLOGO Microsoft Excel es una hoja de cálculo de gran capacidad y fácil uso. Excel no solo es una hoja de calculo, sino también tiene capacidad para diseñar bases de datos (listas) de forma totalmente

Más detalles

Tema 2. El lenguaje de programación Java (Parte 1)

Tema 2. El lenguaje de programación Java (Parte 1) Programación en Java Tema 2. El lenguaje de programación Java (Parte 1) Luis Rodríguez Baena Facultad de Informática Elementos del lenguaje (I) El juego de caracteres. No utiliza ASCII, sino Unicode de

Más detalles

Microsoft Access proporciona dos métodos para crear una Base de datos.

Microsoft Access proporciona dos métodos para crear una Base de datos. Operaciones básicas con Base de datos Crear una Base de datos Microsoft Access proporciona dos métodos para crear una Base de datos. Se puede crear una base de datos en blanco y agregarle más tarde las

Más detalles

Repaso de las características más importantes de la programación Java y su adaptación a Android

Repaso de las características más importantes de la programación Java y su adaptación a Android Repaso de las características más importantes de la programación Java y su adaptación a Android 1. Entorno de programación en java 2. Variables y tipos de datos 3. Operaciones y operadores 4. Clases y

Más detalles

C APÍTULO 1 Gestión de documentos

C APÍTULO 1 Gestión de documentos C APÍTULO 1 Gestión de documentos En este capítulo encontrará unas sencillas indicaciones para cocripción somera del entorno de trabajo de Word, así como una referencia rápida a las funciones de las teclas

Más detalles

C.F.G.S. DESARROLLO DE APLICACIONES INFORMÁTICAS. MÓDULO: Diseño y realización de servicios de presentación en entornos gráficos.

C.F.G.S. DESARROLLO DE APLICACIONES INFORMÁTICAS. MÓDULO: Diseño y realización de servicios de presentación en entornos gráficos. C.F.G.S. DESARROLLO DE APLICACIONES INFORMÁTICAS MÓDULO: Diseño y realización de servicios de presentación en entornos gráficos Unidad 1 Introducción Visual Basic.NET El objetivo de la unidad es conocer

Más detalles

Introducción Cómo usar este libro Estructura de la guía 1. Instalación Introducción Consideraciones previas Ediciones de C++ Builder 3.

Introducción Cómo usar este libro Estructura de la guía 1. Instalación Introducción Consideraciones previas Ediciones de C++ Builder 3. Cómo usar este libro Estructura de la guía 1. Instalación Consideraciones previas Ediciones de C++ Builder 3.0 Requerimientos de C++ Builder 3.0 Instalación de C++ Builder 3.0 Borland C++ 5.02 2. Interfaz

Más detalles

Operación Microsoft Windows XP

Operación Microsoft Windows XP El Explorador de Windows xp Características del Explorador de Windows El Explorador de Windows es una de las aplicaciones más importantes con las que cuenta Windows. Es una herramienta indispensable en

Más detalles

ENTORNO MPLAB ( I) CCFF D.P.E. MÓDULO DE PROYECTOS 1

ENTORNO MPLAB ( I) CCFF D.P.E. MÓDULO DE PROYECTOS 1 ENTORNO MPLAB ( I) CCFF D.P.E. MÓDULO DE PROYECTOS 1 Introducción (1) información binaria o lo que es lo mismo códigos Hasta ahora hemos estudiado el set de instrucciones del µ- controlador. Ya es hora

Más detalles

TEMA 1: INTRODUCCIÓN Y CONCEPTOS BÁSICOS DE WINDOWS Qué es Windows?

TEMA 1: INTRODUCCIÓN Y CONCEPTOS BÁSICOS DE WINDOWS Qué es Windows? TEMA 1: INTRODUCCIÓN Y CONCEPTOS BÁSICOS DE WINDOWS Qué es Windows? Windows es un Sistema Operativo. Un Sistema Operativo es un programa. Sin embargo, se trata de un programa especial cuya misión es la

Más detalles

Pasos para crear un sitio web ASP.Net con el Visual Studio en cualquiera de sus versiones. Unidad 1. Conceptos [ASP.NET EN VISUAL STUDIO]

Pasos para crear un sitio web ASP.Net con el Visual Studio en cualquiera de sus versiones. Unidad 1. Conceptos [ASP.NET EN VISUAL STUDIO] Pasos para crear un sitio web ASP.Net con el Visual Studio en cualquiera de sus versiones Conceptos Lo primero que necesitamos para crear una aplicación o proyecto web es seleccionar el entorno del Visual

Más detalles

CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS

CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS 4.1 Antecedentes históricos El lenguaje de programación BASIC (Beginner's All purpose Symbolic Instruction Code)

Más detalles

Herramientas Informáticas para la Documentación Práctica 1. Introducción al navegador Netscape

Herramientas Informáticas para la Documentación Práctica 1. Introducción al navegador Netscape Herramientas Informáticas para la Documentación Práctica 1. Introducción al navegador Netscape Introducción y objetivos De modo muy resumido Internet es una red que interconecta redes de ordenadores. Conectándose

Más detalles

TÉCNICAS DE GESTIÓN ADMINISTRATIVA PARA PEQUEÑAS EMPRESAS

TÉCNICAS DE GESTIÓN ADMINISTRATIVA PARA PEQUEÑAS EMPRESAS COMBINAR CORRESPONDENCIA CON OFFICE 2003 Combinar correspondencia nos permite incluir en un documento datos almacenados en otro lugar. De esta forma podremos obtener copias de un mismo documento pero con

Más detalles

1. Aplicaciones del J2SE SDK1.4.2 de Sun.

1. Aplicaciones del J2SE SDK1.4.2 de Sun. Dept Informatica Índice 1 Aplicaciones del J2SE SDK142 de Sun 1 11 javac 1 12 java 1 13 javadoc 2 14 Las que no se explican 3 2 Guía de estilo de Java 3 21 Clases 3 211 Nombres para las clases 3 212 Estructura

Más detalles

Fundamentos de Informática. Primer Curso de Ingenieros Químicos. Práctica 1. Dev C++ Compilador de C para Windows

Fundamentos de Informática. Primer Curso de Ingenieros Químicos. Práctica 1. Dev C++ Compilador de C para Windows Práctica 1 Dev C++ Compilador de C para Windows 1. Desarrollo de la práctica Posiblemente, el mejor modo de aprender estas nociones, es comenzar con la escritura de un primer programa en Dev-C++, tal como

Más detalles

Programación: QBASIC

Programación: QBASIC 1. QBASIC Programación: QBASIC Guía del alumno Qbasic es una versión moderna del lenguaje BASIC. Se trata de un lenguaje de alto nivel. En un lenguaje de alto nivel las instrucciones tienen un formato

Más detalles

CONCEPTOS BASICOS DEL LENGUAJE JAVA

CONCEPTOS BASICOS DEL LENGUAJE JAVA CONCEPTOS BASICOS DEL LENGUAJE JAVA NOMENCLATURA GENERAL En Java se distinguen las letras mayúsculas y minúsculas. Las reglas del lenguaje respecto a los nombres de variables son muy amplias y permiten

Más detalles

Java Inicial (20 horas)

Java Inicial (20 horas) Java Inicial (20 horas) 1 Temario 1. Programación Orientada a Objetos 2. Introducción y Sintaxis Java 3. Sentencias Control Flujo 4. POO en Java 5. Relaciones entre Objetos 6. Polimorfismo, abstracción

Más detalles

Fundamentos CAPÍTULO 1. Contenido

Fundamentos CAPÍTULO 1. Contenido CAPÍTULO 1 Fundamentos En este capítulo encontrará instrucciones rápidas y sencillas que le permitirán poner manos a la obra de inmediato. Aprenderá también a utilizar la ayuda en pantalla, que le será

Más detalles

UNIVERSIDAD NACIONAL DE COLOMBIA SEDE DE MEDELLÍN. FACULTAD NACIONAL DE MINAS Escuela de Sistemas

UNIVERSIDAD NACIONAL DE COLOMBIA SEDE DE MEDELLÍN. FACULTAD NACIONAL DE MINAS Escuela de Sistemas UNIVERSIDAD NACIONAL DE COLOMBIA SEDE DE MEDELLÍN FACULTAD NACIONAL DE MINAS Escuela de Sistemas OBJETIVOS: General: Estudiar y utilizar los elementos del entorno de trabajo Visual Basic for Applications

Más detalles

Combinar correspondencia (I)

Combinar correspondencia (I) Combinar correspondencia (I) Mediante la opción Combinar correspondencia Word2007 nos permite incluir en un documento, datos almacenados en otro sitio. De esta forma podremos obtener copias de un mismo

Más detalles

Programación Avanzada para Sistemas de Telecomunicación. Objetos y clases. J.C. Cruellas. Objetos y clases

Programación Avanzada para Sistemas de Telecomunicación. Objetos y clases. J.C. Cruellas. Objetos y clases Programación Avanzada para Sistemas de Telecomunicación Objetos y clases Juan Carlos Cruellas cruellas@ac.upc.es Objetos y clases Concepto de objeto. Concepto de clase. Clases, objetos y programas. Clases

Más detalles

GUÍA DEL USUARIO DE SOFTWARE

GUÍA DEL USUARIO DE SOFTWARE GUÍA DEL USUARIO DE SOFTWARE Serie RJ El contenido de esta guía y las especificaciones de este producto pueden cambiar sin notificación. Brother se reserva el derecho de modificar sin previo aviso las

Más detalles

COMBINAR CORRESPONDENCIA EN MICROSOFT WORD

COMBINAR CORRESPONDENCIA EN MICROSOFT WORD COMBINAR CORRESPONDENCIA EN MICROSOFT WORD Combinar documentos consiste en unir dos documentos diferentes sin que se modifiquen los datos que aparecen en ellos. Esta operación es muy útil y muy frecuente

Más detalles

TEMA 2 WINDOWS XP Lección 3 PROGRAMA WORDPAD

TEMA 2 WINDOWS XP Lección 3 PROGRAMA WORDPAD TEMA 2 WINDOWS XP Lección 3 PROGRAMA WORDPAD 1) TRATAMIENTO DE TEXTOS Uno de los programas accesorios más útiles entre los que vienen con Windows XP es WordPad: un tratamiento de textos pequeño, pero potente,

Más detalles

Comandos básicos MS-DOS

Comandos básicos MS-DOS Comandos básicos MS-DOS Inicio Para iniciar DOS en Windows XP, hay que irse al botón de Inicio, Ejecutar y poner cmd. Se abrirá una ventana de DOS en la que se probarán todas las opciones de los comandos

Más detalles

PROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas

PROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas Departamento de Informática PROGRAMACIÓN DIDÁCTICA Curso 11-12 1 CONSEJERÍA DE EDUCACIÓN I.E.S. NERVIÓN Departamento de Informática CICLO FORMATIVO: TÉCNICO SUPERIOR EN DESARROLLO DE APLICACIONES MULTIPLATAFORMA.

Más detalles

Así, si p.ej. seleccionamos la tabla Hoteles de alguna práctica anterior, y seleccionamos

Así, si p.ej. seleccionamos la tabla Hoteles de alguna práctica anterior, y seleccionamos ESCUELA UNIVERSITARIA DE TURISMO DIPLOMATURA DE TURISMO BASES DE DATOS Y EL SECTOR TURÍSTICO CURSO 02/03 CREACIÓN DE FORMULARIOS CON ACCESS. Access permite la inserción, eliminación y modificación de registros

Más detalles

PRÁCTICAS DE ARQUITECTURA DE COMPUTADORES

PRÁCTICAS DE ARQUITECTURA DE COMPUTADORES PRÁCTICAS DE ARQUITECTURA DE COMPUTADORES PRACTICA 7 Repaso del Lenguaje Ensamblador CURSO 2005-2006 Arquitectura de Computadores. Práctica 7: Repaso del lenguaje Ensamblador 1 PRÁCTICA 7 ASPECTO TRATADO:

Más detalles

(Objetivo) Curso de Informática Básica. Word 2003. Índice. Word 2003. Conceptos Básicos. Uso avanzado de Word. Universidad Rey Juan Carlos

(Objetivo) Curso de Informática Básica. Word 2003. Índice. Word 2003. Conceptos Básicos. Uso avanzado de Word. Universidad Rey Juan Carlos Universidad Rey Juan Carlos Estefanía Martín Liliana P. Santacruz Laboratorio de Tecnologías de la Información en la Educación 2 Objetivo Entender los conceptos procesador de texto y sistema de tratamiento

Más detalles

LA INFORMÁTICA EN EL AULA

LA INFORMÁTICA EN EL AULA EL EXPLORADOR DE WINDOWS El Explorador de Windows nos permite acceder a los recursos de nuestra PC y del sistema de red si es que estamos conectados. Desde él podemos ejecutar aplicaciones, manejar archivos

Más detalles

vbnmqwertyuiopasdfghjklzxcvbnmrty uiopasdfghjklzxcvbnmqwertyuiopasdf ghjklzxcvbnmqwertyuiopasdfghjklzxc

vbnmqwertyuiopasdfghjklzxcvbnmrty uiopasdfghjklzxcvbnmqwertyuiopasdf ghjklzxcvbnmqwertyuiopasdfghjklzxc vbnmqwertyuiopasdfghjklzxcvbnmrty uiopasdfghjklzxcvbnmqwertyuiopasdf ghjklzxcvbnmqwertyuiopasdfghjklzxc COMBINACIÓN DE CARTAS Y CORRSPONDENCIA vbnmqwertyuiopasdfghjklzxcvbnmqw ertyuiopasdfghjklzxcvbnmqwertyuiop

Más detalles

Open-Xchange Server. Guía Rápida

Open-Xchange Server. Guía Rápida Open-Xchange Server Guía Rápida Open-Xchange Server Open-Xchange Server: Guía Rápida publicado Friday, 28. January 2011 Version 6.18.2 Copyright 2006-2011 OPEN-XCHANGE Inc., Este documento es propiedad

Más detalles

Herramientas Visuales de Programación

Herramientas Visuales de Programación Pág. 1 07/04/2013 Para la compilación y ejecución del código que se realizará a lo largo de este curso vamos a utilizar el entorno de programación de la Herramienta Visual Studio 2010. El entorno de programación

Más detalles

Elementos léxicos del lenguaje de programación Java

Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Palabras reservadas Identificadores Literales Operadores Delimitadores Comentarios Apéndices Operadores

Más detalles

MACROS. Automatizar tareas a través del uso de las macros.

MACROS. Automatizar tareas a través del uso de las macros. OBJETIVOS MACROS Definiciones Automatizar tareas a través del uso de las macros. Grabar Ejecutar Manipular macros. Tipos de Macros en Excel Introducción Las operaciones tradicionales que se pueden realizar

Más detalles

Guardar y abrir documentos

Guardar y abrir documentos Contenido 1. Guardar como... 2 2. Abrir... 4 3. Recuperar archivos... 5 4. Unidades, Archivos y Carpetas... 5 5. Estructura de archivos... 6 6. Diferentes visiones de la lista de Abrir... 7 7. Cambiar

Más detalles

Manual de usuario del software de marketing de fidelización de clientes Hermes

Manual de usuario del software de marketing de fidelización de clientes Hermes Manual de usuario del software de marketing de fidelización de clientes Hermes Campus Telematika 1 0. Índice 1. Requisitos y recomendaciones... 3 2. Manejo de la aplicación... 3 2.1. Asistente... 3 2.2.

Más detalles

TEMA 1. MANEJO DE PROCESADOR DE TEXTOS: Microsoft WORD 2003

TEMA 1. MANEJO DE PROCESADOR DE TEXTOS: Microsoft WORD 2003 TEMA 1. MANEJO DE PROCESADOR DE TEXTOS: Microsoft WORD 2003 TEMA 1. MANEJO DE PROCESADOR DE TEXTOS: MICROSOFT WORD 2003...1 1. ESTILOS Y FORMATOS...1 1.1. Estilos...1 1.2. Niveles...2 1.3. Secciones...2

Más detalles

Una computadora es un dispositivo electrónico, operando bajo el control de las instrucciones almacenadas en su propia unidad de memoria.

Una computadora es un dispositivo electrónico, operando bajo el control de las instrucciones almacenadas en su propia unidad de memoria. Informáticas I 1. Sistemas Operativos Para comprender el concepto de sistemas operativos y entender los diferentes tipos de ventanas disponibles lo primero que tenemos que cubrir algunas definiciones básicas.

Más detalles

Tablas de datos... 4. Insertar tablas rápidas basadas en plantillas... 4. Insertar tabla... 4 ... 5. Eliminar una tabla y su contenido...

Tablas de datos... 4. Insertar tablas rápidas basadas en plantillas... 4. Insertar tabla... 4 ... 5. Eliminar una tabla y su contenido... Contenido Tablas de datos... 4 Insertar tablas rápidas basadas en plantillas... 4 Insertar tabla... 4... 5 Eliminar una tabla y su contenido... 5 Borrar el contenido de una tabla... 5 Convertir tabla en

Más detalles

Microsoft Access. Microsoft Access es una herramienta de Microsoft para la definición y manipulación de bases de datos.

Microsoft Access. Microsoft Access es una herramienta de Microsoft para la definición y manipulación de bases de datos. Prácticas de Introducción al uso de Computadores Curso 2001-2002 1 Microsoft Access Introducción Microsoft Access es una herramienta de Microsoft para la definición y manipulación de bases de datos. Una

Más detalles

Cálculo de calidad del suministro eléctrico y Energía y Facturación. - Manual de Usuario

Cálculo de calidad del suministro eléctrico y Energía y Facturación. - Manual de Usuario Cálculo de calidad del suministro eléctrico y Energía y Facturación. - Manual de Usuario ÍNDICE 1. INTRODUCCIÓN 2. ASPECTOS COMUNES DE LA APLICACIÓN 3. GESTIÓN 3.1. USUARIOS 3.2. ORGANIZACIONES 3.3. ASOCIACIONES

Más detalles

Planificación y Control de Proyectos de Software mediante MS Project

Planificación y Control de Proyectos de Software mediante MS Project Práctica 2 Planificación y Control de Proyectos de Software mediante MS Project E n esta práctica vamos a introducirnos en la Planificación y Control de Proyectos de Software mediante herramientas informáticas

Más detalles

JGCBusing Manual de Usuario v1.0

JGCBusing Manual de Usuario v1.0 JGCBusing Manual de Usuario v1.0 Agosto 2012 Tabla de Contenido 1. Introducción... 3 2. JGCBusing. Herramienta Web... 4 2.1. Descripción... 4 2.2. Creación de una configuración desde cero... 8 2.3. Generación

Más detalles

Introducción a macros en Excel 2007

Introducción a macros en Excel 2007 MACROS CON EXCEL Capítulo 1 Introducción a macros en Excel 2007 A lo largo de este primer capítulo comenzaremos a recorrer el camino de las macros en Excel 2007. Para eso, conoceremos las herramientas

Más detalles

Manual de Usuario de la Herramienta SICRES-Tester. SIR Sistema de Interconexión de Registros. Tipo de documento. Fecha de entrega 08/04/2014

Manual de Usuario de la Herramienta SICRES-Tester. SIR Sistema de Interconexión de Registros. Tipo de documento. Fecha de entrega 08/04/2014 MINISTERIO DE HACIENDA Y ADMINISTRACIONES PÚBLICAS SECRETARÍA DE ESTADO DE ADMINISTRACIONES PÚBLICAS DIRECCIÓN GENERAL DE MODERNIZACIÓN ADMINISTRATIVA, PROCEDIMIENTOS E IMPULSO DE LA ADMINISTRACIÓN ELECTRONICA

Más detalles

TEMA 2 WINDOWS XP Lección 4 BLOC DE NOTAS

TEMA 2 WINDOWS XP Lección 4 BLOC DE NOTAS TEMA 2 WINDOWS XP Lección 4 BLOC DE NOTAS 1) EL PEQUEÑO EDITOR El Bloc de notas de Windows XP es un básico editor de texto con el que podemos escribir anotaciones, de hasta 1024 caracteres por línea y

Más detalles

FAQ'S. Generales. Gestión Contable. Gestión Comercial. Actualizado el 19/05/2004. Inicio

FAQ'S. Generales. Gestión Contable. Gestión Comercial. Actualizado el 19/05/2004. Inicio Mensaje de "Error Fatal", en la entrada a cualquier opción, o al grabar datos Cuando se lista por impresora algunos impresos, se cortan las últimas posiciones por la derecha del documento El programa pide

Más detalles

TEMA 3: EL LENGUAJE C: PRESENTACIÓN

TEMA 3: EL LENGUAJE C: PRESENTACIÓN TEMA 3: EL LENGUAJE C: PRESENTACIÓN Historia del lenguaje C Características del lenguaje C Estructura de un programa en C El editor de textos: elementos Funciones: de usuario y de librería Librerías de

Más detalles

Módulo de Movilidad. Soluciones Gestión Administrativa e-gestión Factura. Guía de Instalación y Uso. Guia de manejo PDA (Movilidad) Página 1 de 32

Módulo de Movilidad. Soluciones Gestión Administrativa e-gestión Factura. Guía de Instalación y Uso. Guia de manejo PDA (Movilidad) Página 1 de 32 Módulo de Movilidad Soluciones Gestión Administrativa e-gestión Factura Guía de Instalación y Uso Fecha de revisión: 23/01/2009 Página 1 de 32 Índice 1. Introducción... 3 2. Instalación... 3 3. Configuración

Más detalles

Introducción a Mozilla Navegador

Introducción a Mozilla Navegador 20021125 Universidad de Navarra Introducción a Mozilla Navegador Versión 1.1. cti Centro de Tecnología Informática Tabla de contenidos 1. Mozilla Navegador...3 1.1.Establecer las preferencias de Navigator...4

Más detalles

Comentario sobre el entorno de desarrollo Microsoft Visual Studio 2005 Juan Manuel Lucas

Comentario sobre el entorno de desarrollo Microsoft Visual Studio 2005 Juan Manuel Lucas Comentario sobre el entorno de desarrollo Microsoft Visual Studio 2005 Juan Manuel Lucas Introducción El entorno de desarrollo Visual Studio 2005 o 2008 es una potente herramienta desarrollada por Microsoft

Más detalles

2_dar formato al texto / documentos I

2_dar formato al texto / documentos I Es posible ejecutar el comando tantas veces como copias se desee hacer, ya que tras pegar el texto, una copia del mismo sigue en el Portapapeles. Se dispone de varios caminos para llegar a estas opciones:

Más detalles

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS ARCHIVOS ANEXOS Son los documentos, hojas de cálculo o cualquier archivo que se anexa a las carpetas, subcarpetas, hallazgos u otros formularios de papeles de trabajo. Estos archivos constituyen la evidencia

Más detalles

Web ITSM -GUIA RÁPIDA DE USUARIO-

Web ITSM -GUIA RÁPIDA DE USUARIO- Web ITSM -GUIA RÁPIDA DE USUARIO- Manual básico de la aplicación WebITSM donde se visualiza la funcionalidad completa de la misma y la forma adecuada y eficaz de utilizarla. Ingeniería Técnica en Informática

Más detalles

Macros y lenguaje VBA Aprender a programar con Excel (2ª edición)

Macros y lenguaje VBA Aprender a programar con Excel (2ª edición) Capítulo 1: Introducción A. Introducción 14 B. A quién va dirigido este libro? 14 C. Qué es una macro? 14 D. Qué interés tiene hacer macros? 15 E. Contenido del libro 15 Capítulo 2: El editor de Visual

Más detalles

Módulo 6: Herramientas

Módulo 6: Herramientas Módulo 6: Herramientas Índice 1. Herramientas... 1 Crear una base de datos utilizando un asistente... 1 Ortografía y autocorrección... 6 Seguridad, rendimiento y conversión... 8 Administrador del Panel

Más detalles

Manual de Uso de la nueva solución de Gestión de. Peticiones Informáticas

Manual de Uso de la nueva solución de Gestión de. Peticiones Informáticas Manual de Uso de la nueva solución de Gestión de Peticiones Informáticas INDICE 1 INTRODUCCIÓN... 3 2 ACCESO A LA APLICACIÓN... 5 3 DESCRIPCIÓN DE LAS PANTALLAS... 7 3.1 CONSOLA DE GESTIÓN... 7 3.2 PANTALLA

Más detalles

GENERADOR DE REPORTES. Saint Casa de software Todos los derechos reservados. Contenido. Instrucciones para el Usuario Final 1.

GENERADOR DE REPORTES. Saint Casa de software Todos los derechos reservados. Contenido. Instrucciones para el Usuario Final 1. GENERADOR DE REPORTES Saint Casa de software Todos los derechos reservados Contenido Instrucciones para el Usuario Final 1. CONSULTA RÁPIDA 1 1.1. PANTALLA PRINCIPAL...4 1.2.CLAVE DE ACCESO......4 1.3.

Más detalles

Instalación del programa PSPP y obtención de una distribución de frecuencias.

Instalación del programa PSPP y obtención de una distribución de frecuencias. Práctica 2. Instalación del programa PSPP y obtención de una distribución de frecuencias. Con esta práctica instalaremos el programa PSPP. El programa es un software específico para el análisis estadístico

Más detalles

ESCUELA DE INGENIERÍA DE SISTEMAS DEPARTAMENTO DE COMPUTACIÓN PROGRAMACIÓN 2 PRÁCTICA DE LABORATORIO 7 Herencia y Composición en POO

ESCUELA DE INGENIERÍA DE SISTEMAS DEPARTAMENTO DE COMPUTACIÓN PROGRAMACIÓN 2 PRÁCTICA DE LABORATORIO 7 Herencia y Composición en POO ESCUELA DE INGENIERÍA DE SISTEMAS DEPARTAMENTO DE COMPUTACIÓN PROGRAMACIÓN 2 PRÁCTICA DE LABORATORIO 7 Herencia y Composición en POO Contenido Introducción... 1 Concepto de la Herencia... 2 Relación de

Más detalles

"Programación en Ensamblador del microprocesador Pentium (I)"

Programación en Ensamblador del microprocesador Pentium (I) PRÁCTICA 3 "Programación en Ensamblador del microprocesador Pentium (I)" ÍNDICE 3.1.- El microprocesador Pentium. 3.2.- Inserción de ensamblador en Visual Studio. 3.3.- Facilidades para la depuración de

Más detalles

Atestaki. Copyright 2005. Reservados todos los derechos. ATESTAKI

Atestaki. Copyright 2005. Reservados todos los derechos. ATESTAKI ATESTAKI INDICE PÁGINA INDICE --------------------------------------------------------------------- 1 1.- ES DIFÍCIL DE UTILIZAR? ------------------------------------------- 2 2.- QUÉ PUEDO HACER CON ATESTAKI?

Más detalles

Manual de usuario del simulador BIRD. 1 Instalación del simulador BIRD 2 Manual de usuario

Manual de usuario del simulador BIRD. 1 Instalación del simulador BIRD 2 Manual de usuario Manual de usuario del simulador BIRD 1 Instalación del simulador BIRD 2 Manual de usuario 2 MANUAL DE USUARIO DEL SIMULADOR BIRD La arquitectura y el lenguaje máquina de los procesadores comerciales son,

Más detalles

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP Características del Explorador de Windows El Explorador de Windows es una de las aplicaciones más importantes con las que cuenta Windows. Es una herramienta indispensable

Más detalles

SINAC - Sistema de Información Nacional de Agua de Consumo MENU PRINCIPAL. Copyright Ministerio de Sanidad y Consumo

SINAC - Sistema de Información Nacional de Agua de Consumo MENU PRINCIPAL. Copyright Ministerio de Sanidad y Consumo SINAC - Sistema de Información Nacional de Agua de Consumo MENU PRINCIPAL Copyright Ministerio de Sanidad y Consumo 1. MENU PRINCIPAL DE SINAC... 3 1.1. MÓDULO ABRIR... 5 1.2. MÓDULO DE ENTRADAS... 6 1.2.1.

Más detalles

DIAGRAMAS DE FLUJO: DFD

DIAGRAMAS DE FLUJO: DFD DIAGRAMAS DE FLUJO: DFD DFD es un programa de libre disposición para ayuda al diseño e implementación de algoritmos expresados en diagramas de flujo (DF). Además incorpora opciones para el depurado de

Más detalles

GVisualPDA Módulo de Almacén

GVisualPDA Módulo de Almacén GVisualPDA Módulo de Almacén GVisualPDA es una aplicación para Windows Mobile 5/6 que amplía más aún las posibilidades de integración del software de gestión GVisualRec permitiendo estar conectados en

Más detalles

Creación, configuración, formato y visualización de una presentación en Power Point

Creación, configuración, formato y visualización de una presentación en Power Point Módulo 3 Herramientas de Cómputo Creación, configuración, formato y visualización de una presentación en Power Point Cómo crear una diapositiva nueva? Para crear una diapositiva nueva tienes que ir al

Más detalles

Formato condicional... 3. Herramientas para el manejo de datos... 4. Tablas (Listas)... 4. Subtotales... 6. Filtros Avanzados... 7

Formato condicional... 3. Herramientas para el manejo de datos... 4. Tablas (Listas)... 4. Subtotales... 6. Filtros Avanzados... 7 Contenido Formato condicional... 3 Herramientas para el manejo de datos... 4 Tablas (Listas)... 4 Subtotales... 6 Filtros Avanzados... 7 Validación de datos... 9 Consolidar datos... 12 Análisis Y si...

Más detalles

DogsGest Aplicación de Gestión para residencias y criaderos caninos. Manual de Usuario

DogsGest Aplicación de Gestión para residencias y criaderos caninos. Manual de Usuario DogsGest Aplicación de Gestión para residencias y criaderos caninos Manual de Usuario Índice 1. Introducción... 5 2. Instalación... 6 2.1 Requisitos mínimos... 6 2.2 Instalación... 6 3. Configuración inicial...

Más detalles

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD Manual de usuario 1 - ÍNDICE 1 - ÍNDICE... 2 2 - INTRODUCCIÓN... 3 3 - SELECCIÓN CARPETA TRABAJO... 4 3.1 CÓMO CAMBIAR DE EMPRESA O DE CARPETA DE TRABAJO?...

Más detalles

Los sistemas de explotación WINDOWS y MS-DOS

Los sistemas de explotación WINDOWS y MS-DOS Práctica 1 Los sistemas de explotación WINDOWS y MS-DOS En la primera práctica se introduce al alumno en el manejo de dos sistemas de explotación muy extendidos: WINDOWS y MS-DOS. El primero de ellos (y

Más detalles

Escuela Industrial Superior SISTEMAS OPERATIVOS. Windows 7 Conceptos básicos. Ventajas de Windows. Elementos de trabajo

Escuela Industrial Superior SISTEMAS OPERATIVOS. Windows 7 Conceptos básicos. Ventajas de Windows. Elementos de trabajo SISTEMAS OPERATIVOS Un Sistema Operativo (SO, frecuentemente OS, del inglés Operating System) es un programa o conjunto de programas que en un Sistema Informático controla los recursos de hardware y gestiona

Más detalles

Para poder enviar un Correo Electrónico necesitamos de una cuenta. Esta es una dirección de

Para poder enviar un Correo Electrónico necesitamos de una cuenta. Esta es una dirección de EL CORREO ELECTRÓNICO COMPONENTES 1. El correo Electrónico 2. Dirección de Correo Electrónico @ 3. Qué es OWA? 4. Elementos del OWA 5. Nuevo Correo 6. Responder, Reenviar y 7. Eliminar Mensajes 8. Calendario

Más detalles

Creando el balance de mí presupuesto familiar.

Creando el balance de mí presupuesto familiar. Creando el balance de mí presupuesto familiar. Microsoft Excel Xp es la planilla de cálculo mas utilizada hoy en día, forma parte de la Suite de Microsoft Office Xp. Una diferencia con cualquier programa,

Más detalles

Guía de Excel 2010 Primeros pasos Antonio Roldán. Primeros pasos... 1. Inicio del Excel... 2. Cinta de opciones... 3. Barra de acceso rápido...

Guía de Excel 2010 Primeros pasos Antonio Roldán. Primeros pasos... 1. Inicio del Excel... 2. Cinta de opciones... 3. Barra de acceso rápido... PRIMEROS PASOS En esta primera guía se presenta el programa Excel 2010 y se recorren sus principales características elementales. Muchas de ellas se volverán a estudiar en posteriores guías. CONTENIDO

Más detalles

5.2 Plataforma de Desarrollo Para la Interfaz de Usuario

5.2 Plataforma de Desarrollo Para la Interfaz de Usuario 5.1 Introducción Para la comunicación entre SATEDU y su estación terrena se necesita ajustar ciertos parámetros de comunicación de la Tarjeta de Comunicaciones como la tasa de transmisión, el número de

Más detalles

[FRACCIONAMIENTO DE FICHA TÉCNICA Y PROSPECTO CON COMPLEMENTO DE WORD]

[FRACCIONAMIENTO DE FICHA TÉCNICA Y PROSPECTO CON COMPLEMENTO DE WORD] 01 AEMPS División de Sistemas de Información [FRACCIONAMIENTO DE FICHA TÉCNICA Y PROSPECTO CON COMPLEMENTO DE WORD] Manual técnico para el fraccionamiento de ficha técnica y prospecto AEMPS Gestión de

Más detalles

Lazarus Free Pascal Compiler

Lazarus Free Pascal Compiler Lazarus Free Pascal Compiler Figura No. 1. Licencia: GPL/LGPL Lazarus son las bibliotecas de clase para Free Pascal que emulan Delphi. Free Pascal es un compilador (L)GPL que se ejecuta en Linux, Win32,

Más detalles

Compiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz

Compiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz Compiladores y Lenguajes de Programación Maria de Guadalupe Cota Ortiz Organizaciones que rigen las normas para estandarización de Lenguajes de Programación IEEE (Instituto de Ingenieros Eléctricos y Electrónicos)

Más detalles

Objetivo de aprendizaje del tema

Objetivo de aprendizaje del tema Computación II Tema 3. Identificadores, palabras clave y tipos de datos Objetivo de aprendizaje del tema Al finalizar el tema serás capaz de: Distinguir i entre modificadores d válidos y no válidos. Enumerar

Más detalles

Microsoft Outlook 2003

Microsoft Outlook 2003 Elementos básicos de Outlook... 3 Panel de exploración... 3 Outlook para Hoy... 3 Personalizar Outlook para hoy... 4 Carpetas de correo... 5 Bandeja de salida... 5 Borrador... 5 Correo electrónico no deseado...

Más detalles

... Formas alternativas de escribir un texto. Columnas. anfora CAPÍTULO 4

... Formas alternativas de escribir un texto. Columnas. anfora CAPÍTULO 4 CAPÍTULO 4. Formas alternativas de escribir un texto........ Columnas Para fijar columnas se posiciona el Punto de Inserción donde se desee que comiencen las columnas, o bien se selecciona el texto que

Más detalles