Projectes clàssics - El mode tradicional




Per tal de crear un projecte clàssic, trieu una de les opcions
clàssiques. Els projectes clàssics no són visuals, és a dir, són programes tradicionals d'assemblador, on s'ha d'escriure tot el codi i generar el projecte com a qualsevol altre IDE. Tot i així, l'Easy Code ofereix alguns avantatges que fan més fàcil la vostra feina, per la qual cosa cal que tingueu en compte algunes consideracions per tal d'evitar errors:

Haurieu d'incloure SEMPRE el fitxer Windows.inc (o Windows.h si esteu utilitzant les GoAsm headers) per tal de poder utilitzar les constants del Windows i cridar les funcions de l'API més fàcilment. Si aquest fitxer no està inclòs, haureu d'escriure directament el valor de les constants i tenir en compte quina funció de l'API voleu cridar (p.e: GetModuleHandleA o GetModuleHandleW). El codi generat per l'Easy Code quan es crea un projecte (excepte els projectes de tipus driver) sempre inclou aquest fitxer. Els projectes driver no han d'incloure MAI Windows.inc (ni Windows.h), atès que ja inclouen els seus propis fitxers .h.

Quan treballeu amb projectes exe, dll i consola, els recursos de la vostra aplicació poden fer-se a l'Editor de Recursos d'una manera molt fàcil. L'Editor de Recursos no està disponible per als fitxers objecte COFF (projectes obj) degut a que no poden tenir recursos.

També podeu afegir un fitxer extern de Recursos compilats (*.res) generat fora de l'entorn de l'Easy Code. Si ho feu, com que només es pot enllaçar un fitxer de recursos a l'aplicació, tingueu en compte les següents consideracions:

- Tots els recursos de l'Editor de Recursos de l'Easy Code seran ignorats.
- L'Easy Code només accepta un fitxer extern de recursos compilats (*.res).
- Els fitxers de text amb extensió *.rc (recursos no compilats) NO SÓN acceptats per l'Easy Code, excepte per a ser importats.
- El fitxer de recursos externs *.res afegit ha d'estar a la carpeta Res del directori del projecte.


Quan es desa un projecte per primera vegada, l'Easy Code crea una carpeta anomenada Res dins del directori del projecte. Totes les imatges i altres fitxers relacionats amb els recursos (a més del fitxer extern *.res, si n'afegiu un) han d'estar a la carpeta Res, per tal que l'Easy Code els pugui trobar quan generi el projecte. Si no, es poduïran errors i el projecte no serà generat.

Si voleu utilitzar el control Rich Edit o els "Windows Common controls", marqueu el quadre de verificació corresponent a les Propietats del projecte i els botons relacionats seran visibles a la caixa d'eines.

El quadre de verificació Manifest.xml indica si s'activaran els nous "comon controls" que es troben disponibles des del Windows XP i posteriors. Per a més informació, consulteu el tòpic Incloent un Manifest al projecte.


IMPORTANT: Com que només es pot enllaçar un fitxer de recursos en una aplicació, si afegiu un fitxer extern de recursos compilats (*.res), l'Easy Code entendrà que és aquest fitxer el que s'ha d'enllaçar. Conseqüentment, tots els recursos existents al seu Editor de Recursos (si n'hi ha algun) seran ignorats.

Per tal d'evitar errors no desitjats, tots els fitxers que es necessiten per a generar un projecte, incloënt-hi els fitxers necessaris per les aplicacions del Windows (Windows.inc, kernel32.dll, user32.dll, etc.), s'haurien d'afegir al projecte mitjançant l'interfície de l'Easy Code (millor que incloure'ls al codi) utilitzant els següents menús:

Fitxers Include (*.inc) Utilitzeu el menú Projecte-->Afegeix fitxers Include (*.inc;.h)
Fitxers dinàmics (*.dll;*.ocx;*.drv;*.exe) Utilitzeu el menú Projecte-->Afegeix fitxers d'Enllaç dinàmic
Fitxer de recursos compilats (*.res) Utilitzeu el menú Projecte-->Afegeix recursos externs (*.res)


No cal que escriviu la directiva ALIGN dins del codi per què l'Easy Code sempre l'escriu internament. El valor per aliniar el codi i les dades serà el que hagiu indicat a l'ítem Aliniació (codi i dades) de les
Propietats del projecte.

Els fitxers Include (*.inc;*.h) es busquen sempre als directoris següents:

- Al directori del projecte
- Al directori Include de les carpetes del GoAsm (indicat al menú Eines-->Configuració)
- Al directori Include de les carpetes de l'Easy Code (EasyCode.Go)


Els fitxers d'enllaç dinàmic (*.dll;*.ocx;*.drv;*.exe) es busquen sempre al directori del Sistema. L'enllaçador GoLink ignora els fitxers .lib i agafa tota la informació necessària de les dll's del Sistema (vegeu
Utilitzant la directiva #DynamicLinkFile).

Per tant, tots els fitxers Include o dll que es necessitin han de ser afegits amb les corresponents opcions de menú, i han d'estar ubicats en algun dels directoris especificats. Qualsevol altre fitxer necessari s'ha d'afegir al projecte i s'ha de posar al directori del projecte (excepte els fitxers d'imatge, fitxers de recursos externs *.res, i altres fitxers relacionats amb els recursos, que han d'estar al subdirectori Res).

El nom final de l'executable, llibreria dinàmica, fitxer objecte COFF o driver, serà sempre el nom del projecte més l'extensió corresponent (exe, dll, obj o sys). Per exemple, un projecte anomenat Projecte1 serà Projecte1.exe, Projecte1.dll, Projecte1.obj o Projecte1.sys, depenent del tipus de projecte. Si voleu programar un Driver NT clàssic (sys), llegiu atentament Programació de controladors NT (drivers).

Quan es crea un projecte clàssic nou, l'Easy Code afegeix automàticament un mòdul anomenat Module1. Podeu afegir tants mòduls (nous o existents) com vulgueu, utilitzant els següents menús:

Projecte-->Afegeix un Mòdul
Projecte-->Afegeix un fitxer existent


Windows.inc
(o Windows.h si esteu utilitzant les GoAsm headers) s'inclou sempre per defecte excepte per als projectes de tipus driver.

Quan afegeiu mòduls existents, haurien d'haver estats fets amb l'Easy Code per tal d'evitar problemes. Tot i així, en molts casos, els fitxers d'assemblador (*.asm), que no hagin estat creats per l'Easy Code, es carregaran sense problemes.

Quan dissenyeu quadres de diàleg ("dialog boxes") a l'Editor de Recursos, podeu posar-hi diferents controls a dins. Per tenir una relació dels controls disponibles vegeu Objectes Control.

Per tal d'il·lustrar tot el que aquí s'ha dit, vegeu els exemples que venen amb l'Easy Code (localitzats a la carpeta Examples del directori de l'Easy Code). L'aplicació CardFile (projecte clàssic) i el fitxer per defecte Fitxer executable clàssic (programat per Jeremy Gordon) estan fets totalment amb l'Easy Code i utilitzen tot l'estil de programació que s'ha vist en aquest capítol.

OBSERVACIONS: Als projectes clàssics heu d'escriure tot el codi, per tant, haureu d'ocupar-vos de les directives necessàries (excepte les que s'han esmentat anteriorment), i de desar els registres Ebx, Edi i Esi (tal com exigeix el Windows), per tal de compilar i enllaçar sense errors.