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