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

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

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

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

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

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

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

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

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

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

(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

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

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

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

Grafos. Manual de usuario. Grafos - Manual de usuario

Grafos. Manual de usuario. Grafos - Manual de usuario Grafos Manual de usuario Grafos forma parte de un proyecto de investigación y desarrollo de aplicaciones informáticas de diseño modular orientadas hacia la docencia, investigación y labores profesionales

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

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

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

PECO-GRAPH Manual de Usuario

PECO-GRAPH Manual de Usuario ESPAÑOL PECO-GRAPH Manual de Usuario Software para la gestión gráfica de datos de conteo ÍNDICE 1 INTRODUCCIÓN...3 2 INSTALACIÓN...4 2.1 REQUISITOS...4 2.2 INSTALACIÓN Y EJECUCIÓN...4 3 FUNCIONALIDAD Y

Más detalles

Guía detallada de administración de Active Directory

Guía detallada de administración de Active Directory Guía detallada de administración de Active Directory Esta guía es una introducción a la administración del servicio Active Directory y del complemento Usuarios y equipos de Active Directory de Windows

Más detalles

Base de Datos Compras

Base de Datos Compras Dpto. de Matemática Aplicada y Ciencias de la Computación Base de Datos Compras Diseño. Creación de las tablas y sus relaciones. Creación de Formularios. Creación de un Informe Area de Ciencias de la Computació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

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

Autores: Salazar Ramírez Norman Francisco Cota Ortiz Maria de Gudalupe Flores Pérez Pedro

Autores: Salazar Ramírez Norman Francisco Cota Ortiz Maria de Gudalupe Flores Pérez Pedro Autores: Salazar Ramírez Norman Francisco Cota Ortiz Maria de Gudalupe Flores Pérez Pedro Hermosillo, Sonora, 2010 I N D I C E Página Presentación.... Dinámic Link Libraries... Registro manual de una dll,

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

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

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

Fuente: http://www.kzgunea.net

Fuente: http://www.kzgunea.net APRENDE A NAVEGAR INTERNET EXPLORER El navegador Internet Explorer ya lo tenemos integrado en el Sistema Operativo, en sus diferentes versiones desde Windows 95, por lo cual no tendremos que instalarlo.

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

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

PRINCIPIOS DE DISEÑO DE LAS INTERFACES GRÁFICAS (APLICADOS A DELPHI)

PRINCIPIOS DE DISEÑO DE LAS INTERFACES GRÁFICAS (APLICADOS A DELPHI) PRINCIPIOS DE DISEÑO DE LAS INTERFACES GRÁFICAS (APLICADOS A DELPHI) 1 M. Martínez, URJC, 2001 PRINCIPIOS GENERALES DE DISEÑO 1 Adoptar el punto de vista del usuario. Ver la interfaz desde fuera y en relación

Más detalles

Programación 2 Curso 2013 2014. Guía de desarrollo C/C++ con Eclipse

Programación 2 Curso 2013 2014. Guía de desarrollo C/C++ con Eclipse Programación 2 Curso 2013 2014 Introducción Guía de desarrollo C/C++ con Eclipse Eclipse 1 es un entorno de programación que permite el desarrollo de aplicaciones en diferentes lenguajes. Consta de un

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

Ejercicios de evaluación de fundamentos de programación en Java

Ejercicios de evaluación de fundamentos de programación en Java Ejercicios de evaluación de fundamentos de programación en Java Jorge Martínez Ladrón de Guevara Editorial EME ISBN 978-84-96285-40-8 Contenido 1. Introducción a Java... 1 Test de evaluación...1 Ejercicios...4

Más detalles

ETIQUETA DISEÑO DE PÁGINA

ETIQUETA DISEÑO DE PÁGINA ETIQUETA DISEÑO DE PÁGINA Es la tercera etiqueta de Excel 2007, agrupa las herramientas de temas 10, configuración de pagina, ajustes del área de impresión, opciones de la hoja (cuadriculas y encabezados),

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

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

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

C/M GESTION ADMINISTRATIVA MODULO: APLICACIONES INFORMÁTICAS

C/M GESTION ADMINISTRATIVA MODULO: APLICACIONES INFORMÁTICAS C/M GESTION ADMINISTRATIVA MODULO: APLICACIONES INFORMÁTICAS 1. OBJETIVOS GENERALES.- Con este módulo se pretender formar a un técnico que sea capaz de utilizar herramientas informáticas y de aplicación

Más detalles

MANUAL DE AYUDA INFORMATIVAS MAC/OSX

MANUAL DE AYUDA INFORMATIVAS MAC/OSX MANUAL DE AYUDA INFORMATIVAS MAC/OSX Agencia Tributaria Centro de Atención Telefónica Departamento de INFORMÁTICA TRIBUTARIA ÍNDICE PLATAFORMA DE INFORMATIVAS INTRODUCCIÓN... 4 Requisitos mínimos... 4

Más detalles

Programación con VBA Excel

Programación con VBA Excel Programación con VBA Excel Píldoras Informáticas CAPÍTULO 1. Introducción. Macros... 6 1.1 Cuando utilizar una Macro... 6 1.2 Grabar una macro... 8 1.3 Ejecutar una Macro... 9 1.4 Seguridad en las macros...

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

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

El entorno Vision - E Laboratory

El entorno Vision - E Laboratory Prácticas de laboratorio El entorno Vision - E Laboratory Una imagen vale más que mil palabras Proverbio chino. 1. Introducción 2. El entorno Vision-E 2.1 Panel de Imágenes 2.2 Área de Menús y Edición

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

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

INFORMÁTICA APLICADA A LA GESTIÓN COMERCIAL LECCIONES DE OFIMÁTICA BÁSICA: MICROSOFT ACCESS QUÉ SE PRESENTA EN ESTE DOCUMENTO

INFORMÁTICA APLICADA A LA GESTIÓN COMERCIAL LECCIONES DE OFIMÁTICA BÁSICA: MICROSOFT ACCESS QUÉ SE PRESENTA EN ESTE DOCUMENTO INFORMÁTICA APLICADA A LA GESTIÓN COMERCIAL LECCIONES DE OFIMÁTICA BÁSICA: MICROSOFT ACCESS QUÉ SE PRESENTA EN ESTE DOCUMENTO El objetivo de esta sencilla guía es el de describir los procedimiento básicos

Más detalles

EL ENTORNO: VISION - E LABORATORY

EL ENTORNO: VISION - E LABORATORY EL ENTORNO: VISION - E LABORATORY JAVIER MOLINA* Y ALBERTO YÚFERA*, ** * Departamento de Tecnología Electrónica, Universidad de Sevilla, Av. Reina Mercedes s/n, Sevilla 41012, España. tf: 95 4556472, fax:

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

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

bla bla Documentos Guía del usuario

bla bla Documentos Guía del usuario bla bla Documentos Guía del usuario Documentos Documentos: Guía del usuario fecha de publicación Miércoles, 25. Febrero 2015 Version 7.6.2 Copyright 2006-2015 OPEN-XCHANGE Inc., La propiedad intelectual

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

Práctica 3 mtp. metodoloxía e tecnoloxía da programación. Presentar detalles básicos sobre la sintaxis del lenguaje de programación Java.

Práctica 3 mtp. metodoloxía e tecnoloxía da programación. Presentar detalles básicos sobre la sintaxis del lenguaje de programación Java. Práctica 3 mtp metodoloxía e tecnoloxía da programación Objetivos: Duración: Presentar detalles básicos sobre la sintaxis del lenguaje de programación Java. 1 semana 1.- Identificadores Los identificadores

Más detalles

Tema: Introducción a Java y Netbeans

Tema: Introducción a Java y Netbeans 1 Tema: Introducción a Java y Netbeans Objetivo Especifico Conocer el uso básico del JDK para la compilación y ejecución de código java desde la linea de comando Conocer el entorno de desarrollo NetBeans

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

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

Formato para prácticas de laboratorio

Formato para prácticas de laboratorio CARRERA PLAN DE ESTUDIO CLAVE ASIGNATURA NOMBRE DE LA ASIGNATURA LSC 2003-1 5235 Tópicos Selectos de Programación PRÁCTICA No. 6 LABORATORIO DE NOMBRE DE LA PRÁCTICA Licenciados en Sistemas Computacionales

Más detalles

Estudio comparativo de distintos lenguajes de programación n orientados a objeto

Estudio comparativo de distintos lenguajes de programación n orientados a objeto Estudio comparativo de distintos lenguajes de programación n orientados a objeto Cristo Manuel Amezcua Martínez Felipe Molina de la Torre Marta Moreno Mata David Rivas Ortega Orientación n a Objetos Herencia

Más detalles

Documento en blanco, el cual permite al seleccionarlo y pulsando el botón

Documento en blanco, el cual permite al seleccionarlo y pulsando el botón Acceder a un nuevo documento Manejo de documentos y de archivos Cuando se inicia Word, aparecerá en pantalla un documento nuevo (en blanco) que por defecto se llama Documento1. Para crear un documento

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

Manual del programador, Parte 7: Crear archivos de Ayuda

Manual del programador, Parte 7: Crear archivos de Ayuda Manual del programador, Parte 7: Crear archivos de Ayuda Página 1 de 24 Manual del programador, Parte 7: Crear archivos de Ayuda Los archivos de Ayuda son un origen de información valiosa para los usuarios

Más detalles

Informática y Programación Escuela de Ingenierías Industriales y Civiles Grado en Ingeniería en Ingeniería Química Curso 2010/2011

Informática y Programación Escuela de Ingenierías Industriales y Civiles Grado en Ingeniería en Ingeniería Química Curso 2010/2011 Módulo 1. Fundamentos de Computadores Informática y Programación Escuela de Ingenierías Industriales y Civiles Grado en Ingeniería en Ingeniería Química Curso 2010/2011 1 CONTENIDO Tema 1. Introducción

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

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

MANUAL DE AYUDA INFORMATIVAS MAC/OSX

MANUAL DE AYUDA INFORMATIVAS MAC/OSX MANUAL DE AYUDA INFORMATIVAS MAC/OSX Agencia Tributaria CENTRO DE ATENCIÓN TELEFÓNICA DEPARTAMENTO DE INFORMÁTICA TRIBUTARIA ÍNDICE PLATAFORMA DE INFORMATIVAS INTRODUCCIÓN... 4 Requisitos mínimos... 4

Más detalles

Fundamentos del Lenguaje de Programación Java

Fundamentos del Lenguaje de Programación Java Fundamentos del Lenguaje de Programación Java M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx El lenguaje Java Estándares de codificación Comentarios Programas con Java Identificadores Palabras clave

Más detalles

805 Photo Printer. Guía del controlador de la impresora

805 Photo Printer. Guía del controlador de la impresora 805 Photo Printer Guía del de la impresora Contenido Guía del de la impresora Acerca del de la impresora Funciones del de la impresora Acerca de la guía en línea Asistencia o información adicional Requisitos

Más detalles

CONFIGURACION DEL DIRECTORIO ACTIVO EN WINDOWS SERVER 2000/2003. Introducción

CONFIGURACION DEL DIRECTORIO ACTIVO EN WINDOWS SERVER 2000/2003. Introducción CONFIGURACION DEL DIRECTORIO ACTIVO EN WINDOWS SERVER 2000/2003 Fuente: www.microsoft.com Asignatura: Sistemas Distribuidos Tutor: Iván Sánchez Nieves Semestre IX - Nocturno Fundación Universitaria San

Más detalles

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador).

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador). CAPÍTULO 4 Requerimientos de software Este capítulo presenta las herramientas necesarias para la construcción y ejecución de programas en el lenguaje de programación JAVA, los requerimientos mínimos de

Más detalles

Programa Java. El lenguaje de programación Java. Comentarios. Programa Java. Palabras reservadas. Identificadores

Programa Java. El lenguaje de programación Java. Comentarios. Programa Java. Palabras reservadas. Identificadores El lenguaje de programación Java Programa Java Un programa Java está formado por un conjunto de clases que interactúan entre sí La clase es la unidad básica de programación La ejecución depende de la clase

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 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

Pasos para Realizar un Programa de lenguaje C en modo Consola en Visual Studio 2008 INDICE

Pasos para Realizar un Programa de lenguaje C en modo Consola en Visual Studio 2008 INDICE Pasos para Realizar un Programa de lenguaje C en modo Consola en Visual Studio 2008 Ignacio Alvarez García Septiembre 2012 INDICE 1. Preparar el proyecto para el programa... 1 1.1. Abrir Visual Studio

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

Macros y mantenimiento

Macros y mantenimiento Macros y mantenimiento Para finalizar, conoceremos algunas nociones básicas sobre las macros. Si bien poseen infinitas variantes en su diseño, nos centraremos en su creación, ejecución y visualización,

Más detalles

MANUAL DE AYUDA INFORMATIVAS WINDOWS

MANUAL DE AYUDA INFORMATIVAS WINDOWS MANUAL DE AYUDA INFORMATIVAS WINDOWS Agencia Tributaria CENTRO DE ATENCIÓN TELEFÓNICA DEPARTAMENTO DE INFORMÁTICA TRIBUTARIA ÍNDICE PLATAFORMA DE INFORMATIVAS INTRODUCCIÓN... 4 Requisitos mínimos... 4

Más detalles

Programación con C++ Builder 2006

Programación con C++ Builder 2006 Programación con C++ Builder 2006 Francisco Charte Ojeda Introducción Programación en Windows Herramientas RAD C++ Builder Alcance del libro Estructura Uso de los ejemplos del CD-ROM 1. La interfaz de

Más detalles

Capítulo 3. Archivos de datos. Archivos nuevos

Capítulo 3. Archivos de datos. Archivos nuevos Capítulo 3 Archivos de datos Las opciones del menú Archivo permiten abrir, guardar, imprimir, exportar, etc., el contenido de las diferentes ventanas SPSS. Este capítulo describe las opciones disponibles

Más detalles

PRACTICA 0:EL IDE DE C++ BUILDER 5.0

PRACTICA 0:EL IDE DE C++ BUILDER 5.0 PRACTICA 0:EL IDE DE C++ BUILDER 5.0 Introducción En esta práctica se van a realizar ejemplos sencillos referidos al entorno de programación de C++ Builder 5.0. El objetivo es familiarizarse con el entorno

Más detalles

Unidad 2: El sistema operativo. Trabajo sin conexión.

Unidad 2: El sistema operativo. Trabajo sin conexión. Unidad 2: El sistema operativo. Trabajo sin conexión. Un sistema operativo es un conjunto de programas de control que actúa como intermediario entre el usuario y el hardware de un sistema informático,

Más detalles

1. En relación al concepto de microprocesador, señale cual de las siguientes es una definición correcta:

1. En relación al concepto de microprocesador, señale cual de las siguientes es una definición correcta: APELLIDOS NOMBRE DNI CALIFICACIÓN Cada repuestos correctos 0,4 puntos. Cada repuesta incorrecta resta 0,1 puntos. La doble marca no puntúa 1. En relación al concepto de microprocesador, señale cual de

Más detalles

Capítulo 3 Archivos de datos

Capítulo 3 Archivos de datos Capítulo 3 Archivos de datos Las opciones del menú Archivo permiten abrir, guardar, imprimir, exportar, etc., el contenido de las diferentes ventanas SPSS. Este capítulo describe las opciones disponibles

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

7. Manejo de Archivos en C.

7. Manejo de Archivos en C. 7. Manejo de Archivos en C. Los datos que hemos tratado hasta el momento han residido en la memoria principal. Sin embargo, las grandes cantidades de datos se almacenan normalmente en un dispositivo de

Más detalles

WEBMAIL 13 de julio de 2009

WEBMAIL 13 de julio de 2009 USO DE UN WEBMAIL Índice de Mensajes Después de seleccionar una carpeta, en el marco de la izquierda se desplegará al índice de mensajes. Consiste en una lista de los mensajes contenidos por la carpeta

Más detalles

Curso POWERPOINT 97. Introducción

Curso POWERPOINT 97. Introducción Curso POWERPOINT 97 Introducción El curso PowerPoint 97 está destinado a aquellos alumnos que necesiten crear presentaciones que informen de la evolución de un proyecto. PowerPoint es un programa de edición

Más detalles

CAPÍTULO 3 VISUAL BASIC

CAPÍTULO 3 VISUAL BASIC CAPÍTULO 3 VISUAL BASIC 3.1 Visual Basic Microsoft Visual Basic es la actual y mejor representación del viejo lenguaje BASIC, le proporciona un sistema completo para el desarrollo de aplicaciones para

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

Windows XP. Sistemas operativos (tercera parte) Autor: Editorial McGraw-Hill

Windows XP. Sistemas operativos (tercera parte) Autor: Editorial McGraw-Hill Windows XP. Sistemas operativos (tercera parte) Autor: Editorial McGraw-Hill 1 Presentación del curso En esta tercera parte de nuestro curso sobre el Sistema Operativo Windows XP te enseñaremos a utilizar

Más detalles

Guía para trabajar bases de datos con Excel

Guía para trabajar bases de datos con Excel Guía para trabajar bases de datos con Excel Crear una base de datos Una Base de Datos en Excel, denominada lista, es un conjunto de datos organizados en filas o registros, en los cuales la primera fila

Más detalles

Introducción... 4 Conceptos básicos... 4 Qué es una base de datos?... 4 Partes de una base de datos... 4. Tablas... 4. Formularios... 5. Informes...

Introducción... 4 Conceptos básicos... 4 Qué es una base de datos?... 4 Partes de una base de datos... 4. Tablas... 4. Formularios... 5. Informes... Contenido Introducción... 4 Conceptos básicos... 4 Qué es una base de datos?... 4 Partes de una base de datos... 4 Tablas... 4 Formularios... 5 Informes... 5 Consultas... 5 Macros... 5 Módulos... 5 Partes

Más detalles

PRÓLOGO... XVII CAPÍTULO 1. FASES EN EL DESARROLLO DE UN PROGRAMA...

PRÓLOGO... XVII CAPÍTULO 1. FASES EN EL DESARROLLO DE UN PROGRAMA... CONTENIDO PRÓLOGO... XVII CAPÍTULO 1. FASES EN EL DESARROLLO DE UN PROGRAMA... 1 QUÉ ES UN PROGRAMA... 1 QUÉ ES Visual Basic.NET... 2 REALIZACIÓN DE UN PROGRAMA EN Visual Basic.NET... 3 Cómo crear un programa...

Más detalles

Práctica 3ProgramacionRS232: Programación básica de la RS232

Práctica 3ProgramacionRS232: Programación básica de la RS232 Práctica 3ProgramacionRS232: Programación básica de la RS232 1 Objetivos El objetivo de esta práctica es la iniciación del alumno en la programación de las comunicaciones en un entorno de desarrollo basado

Más detalles

(SIGA) Manual de Instalación del Sistema Generador de los Anexos A, D y E. Dirección de Desarrollo de Sistemas

(SIGA) Manual de Instalación del Sistema Generador de los Anexos A, D y E. Dirección de Desarrollo de Sistemas Comisión Nacional del Sistema de Ahorro para el Retiro Dirección de Desarrollo de Sistemas del Sistema Generador de los Anexos A, D y E (SIGA) Este documento proporciona información de los requerimientos

Más detalles

PROGRAMA FORMATIVO MICROSOFT OFFICE XP PROFESIONAL

PROGRAMA FORMATIVO MICROSOFT OFFICE XP PROFESIONAL PROGRAMA FORMATIVO MICROSOFT OFFICE XP PROFESIONAL www.bmformacion.es info@bmformacion.es Objetivos Se describen todos los programas que integran la suite ofimática Microsoft Office XP: Word, Excel, Access,

Más detalles

Manual de Microsoft PowerPoint 2007

Manual de Microsoft PowerPoint 2007 Curso de Operador de Microcomputadoras Índice Presentación... 3 Interfaz de usuario de la cinta de opciones... 4 Hay fichas que se muestran sólo cuando se necesitan... 4 Abrir una presentación de PowerPoint

Más detalles

Gestión Documental ERP

Gestión Documental ERP N. Documento Revisión Nº: 1.0 Fecha: 30/03/11 Introducción 1 Configuración de la Gestión Documental ERP 2 Funcionamiento de la Gestión Documental ERP 6 ÍNDICE Introducción El programa Ahora permite una

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

En Wordpad se puede escribir, editar y dar formato a un texto, así como insertar imágenes de forma sencilla, etc.

En Wordpad se puede escribir, editar y dar formato a un texto, así como insertar imágenes de forma sencilla, etc. Aplicación WordPad Generalidades WordPad es un procesador de textos que permite crear e imprimir documentos de manera muy rápida y sencilla. En Wordpad se puede escribir, editar y dar formato a un texto,

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