Proyectos clásicos - El modo tradicional




Para crear un proyecto clásico, elija una de las opciones clásicas. Los proyectos clásicos no son visuales, es decir, son programas tradicionales de ensamblador, donde se debe escribir todo el código y generar el proyecto como en cualquier otro IDE. Aun así, Easy Code ofrece algunas ventajas que hacen mas fácil su trabajo, y por ello debe tener en cuenta algunas consideraciones a fin de evitar errores:

No debería incluir el archivo Windows.inc, puesto que Easy Code SIEMPRE lo incluye internamente porque es necesario para las aplicaciones Windows de 32 bits. Si el proyecto es de tipo driver, el archivo Windows.inc no se incluye NUNCA porque se producirían múltiples errores en tiempo de compilación. Los proyectos driver solamente incluyen sus propios archivos inc.

Los procedimientos son globales a todo el proyecto (a menos que sean Private) para que pueda invocarlos desde cualquier otro módulo sin tener que escribir ni una sola letra de código. Si desea que un procedimiento sólo "sea visible" dentro del módulo en el que se encuentra, simplemente hágalo privado (Proc Private).

Opcionalmente, las variables también pueden ser globales a todo el proyecto (vea Propiedades del proyecto) sin tener que escribir ni una sola letra de código.

Los prototipos de todos los procedimientos del proyecto (Protos), Public o Private, son escritos internamente por Easy Code, por lo tanto, no hace falta que se preocupe de ellos.

Cuando trabaje con proyectos exe, dll y consola, los recursos de su aplicación pueden hacerse en el Editor de Recursos de una manera muy fácil. El Editor de Recursos no está disponible para las librerías estáticas (proyectos lib) porque no pueden tener recursos.

También puede agregar un archivo externo de Recursos compilados (*.res) generado fuera del entorno de Easy Code. Si lo hace, puesto que sólo se puede enlazar un archivo de recursos a la aplicación, tenga en cuenta las siguientes consideraciones:

- Todos los recursos del Editor de Recursos de Easy Code serán ignorados.
- Easy Code sólo acepta un archivo externo de recursos compilados (*.res).
- Los archivos de texto con extensión *.rc (recursos no compilados) NO SON aceptados por Easy Code, excepto para ser importados.
- El archivo de recursos externos *.res agregado debe estar en la carpeta Res del directorio del proyecto.
Cuando se guarda un proyecto por primera vez, Easy Code crea una carpeta llamada Res dentro del directorio del proyecto. Todas las imágenes y demás archivos relacionados con los recursos (además del archivo externo *.res, si se agrega uno) deben estar en la carpeta Res, para que Easy Code los pueda encontrar cuando genere el proyecto. Si no, se poducirán errores y el proyecto no será generado.

Si desea utilizar el control Rich Edit o los "Windows Common controls", marque el cuadro de verificación correspondiente en las Propiedades del proyecto y los botones relacionados serán visibles en la caja de herramientas.

El cuadro de verificación Manifest.xml indica si se activarán los nuevos "comon controls" que se encuentran disponibles desde Windows XP y posteriores. Para más información, consulte el tópico Incluyendo un Manifiesto en el proyecto.


IMPORTANTE:
Puesto que sólo se puede enlazar un archivo de recursos a una aplicación, si agrega un archivo externo de recursos compilados (*.res), Easy Code entenderá que es este archivo el que se debe enlazar. Consecuentemente, todos los recursos existentes en su Editor de Recursos (si hay alguno) serán ignorados.

Con el fin de evitar errores no deseados, todos los archivos que se necesiten para generar un proyecto, incluyendo los archivos necesarios para las aplicaciones de Windows (kernel32.inc, user32.inc, kernel32.lib, user32.lib, etc.), deberían ser agregados al proyecto mediante la interfaz de Easy Code (mejor que incluirlos en el código) utilizando los siguientes menús:

Archivos Include (*.inc) Utilice el menú Proyecto-->Agregar archivos Include (*.inc;.h)
Archivos Librería (*.lib) Utilice el menú Proyecto-->Agregar archivos Librería (*.lib)
Archivo de recursos compilados (*.res) Utilice el menú Proyecto-->Agregar recursos externos (*.res)
Archivo de Definición (*.def) Utilice el menú Proyecto-->Agregar archivo de Definición (*.def)

No es preciso que escriba las directivas .model y option casemap en su código (si lo hace, verá un "WARNING" a la hora de compilar). La interfaz de Easy Code siempre añade internamente las sentencias siguientes (necesarias para las aplicaciones Windows de 32 bits):

.model flat, stdcall
option casemap:none

No es preciso que escriba la directiva ALIGN dentro del código porque Easy Code siempre la escribe internamente. El valor para alinear el código y los datos será el que haya indicado en el ítem Alineación de las Propiedades del proyecto.

No es preciso que escriba ninguna de las directivas .386, .486 o .586 porque Easy Code siempre lo hace internamente. La directiva correspondiente será la que se haya indicado en el ítem Procesador de las Propiedades del proyecto.

Los archivos Include y Librería (*.inc y *.lib) siempre se buscan en los siguientes directorios:

- En el directorio del proyecto
- En los directorios Include o Lib de las carpetas de Masm32 o GeneSys (indicados en el menú Herramientas-->Configuración)
- En el directorio Include de las carpetas de Easy Code (EasyCode.Ms)

Por consiguiente, todos los archivos Include y Librería que se necesiten deben ser agregados con las correspondientes opciones de menú, y tienen que estar ubicados en alguno de los directorios especificados.Cualquier otro archivo necesario debe agregarse al proyecto y tiene que estar en el directorio del proyecto (excepto los archivos de imagen, archivos de recursos externos *.res, y otros archivos relacionados con los recursos, que deben estar en el subdirectorio Res).

Cuando genere Librerías estáticas (protectos lib) y/o Librerías de enlace dinámico (proyectos dll), puede agregar un archivo de definición (*.def). Si lo hace, recuerde que sólamente se puede agregar un archivo de definición en un proyecto, y que ese archivo también tiene que estar en el directorio del proyecto.

El nombre final del archivo ejecutable, librería dinámica, librería estática, archivo objeto COFF o driver, será siempre el nombre del proyecto mas la extensión correspondiente (exe, dll, lib, obj o sys). Por ejemplo, un proyecto llamado Proyecto1 será Proyecto1.exe, Proyecto1.dll, Proyecto1.lib, Proyecto1.obj o Proyecto1.sys, dependiendo del tipo de proyecto. Si desea programar un Driver NT clásico (sys), lea atentamente Programación de controladores NT (drivers)

Cuando se crea un proyecto clásico nuevo, Easy Code agrega automáticamente un módulo llamado Module1. Puede agregar tantos módulos (nuevos o existentes) como desee, utilizando los siguientes menús:

Proyecte-->Agregar Módulo
Proyecto-->Agregar archivo existente

Además, siempre se incluyen por defecto los siguientes archivos (excepto en proyectos de tipo driver):

Kernel32.inc
User32.inc
Kernel32.lib
User32.lib


Windows.inc
también se incluye siempre por defecto (excepto en proyectos de tipo driver). Si desea incluir el archivo Macros.asm, simplemente marque la opción correspondiente en las
Propiedades del proyecto.

Las aplicaciones sencillas no necesitan nada mas. De todas maneras, si utiliza funciones de la API, p.e. del archivo gdi32.dll, deberá agregar los archivos *.inc y *.lib correspondientes.

Cuando agregue módulos existentes, deberían haber sido hechos con Easy Code para evitar problemas. Aun así, en muchos casos, los archivos de ensamblador (*.asm), que no hayan sido creados por Easy Code, se cargarán sin problemas.

Cuando diseñe cuadros de diálogo ("dialog boxes") en el Editor de Recursos, puede poner diferentes controles dentro de ellos. Para tener una relación de los controles disponibles vea Objetos Control.

Para ilustrar todo lo que aquí se ha dicho, vea los ejemplos que vienen con Easy Code (localizados en la carpeta Examples del directorio de Easy Code). Las aplicaciones EasyCalc, GeneSys y RSEditor (proyectos clásicos) han sido hechas totalmente con Easy Code y utilizan todo el estilo de programación que se ha visto en este capítulo.

OBSERVACIONES: En los proyectos clásicos usted debe escribir todo el código, por lo tanto, deberá ocuparse de las directivas necesarias (excepto las que se han mencionado anteriormente), y de guardar los registros Ebx, Edi y Esi (tal como exige Windows), para compilar y enlazar sin errores.

IMPORTANTE: Puesto que Easy Code ignora la directiva Option Proc, los procedimentos son siempre Public por defecto si no están explícitamente declarados como Private. Por favor vea la sección Código y Datos: Privado o Público.