Amiga Developer Site

Saku-foorumi » Classic Amiga » Ohjelmointi » Viestit 2003 » Amiga Developer Site « Edellinen Seuraava »

Kirjoittaja Viesti
 

Markus
Lauantaina, 8. maaliskuuta, 2003 - klo 14.01:   
Amiga Developer Site on nykyään osoitteessa: http://www.innoidea.hu/subsites/amiga/developer/phpwebdev.php

Tämä ei varmaankaan ole aivan uusi uutinen, mutta Saku39:ssä oleva linkki näkyi olevan vanhentunut samoin omissa suosikeissani oleva linkki.

 

miksuh
Lauantaina, 8. maaliskuuta, 2003 - klo 14.36:   
Toi on oikein hyvä sivu, kannattaa toi todella muistaa, jos hakee jotain matskua ohjelmointiin.

 

Markus
Tiistaina, 11. maaliskuuta, 2003 - klo 17.25:   
Tuo on kyllä niin arvokas sivusto, että toivotaan, että se pysyy vielä piiitkään pystössä...

 

Jon
Tiistaina, 11. maaliskuuta, 2003 - klo 21.47:   
http://www.ezcyberspace.com/gcc - lupaavalta vaikuttava GCC/MUI-tutoriaali.

 

JPQ
Keskiviikkona, 12. maaliskuuta, 2003 - klo 0.19:   
Jon: pitää ehkä tänään tulostaa tuo ohje jos rupean GCC käyttäjäksi ehkä olisi syytä luopua HiSoftC++:sta vaikka onkin mukavampi koska Pegasokselle/AmigaOnelle lienee vielä pakko koodata GCC:llä. Ja sitä paitsi datatypes kohdasta voi olla muutenkin iloa ja mui kohdastakin toki.
miksuh: samaa mieltä.

 

miksuh
Keskiviikkona, 12. maaliskuuta, 2003 - klo 14.35:   
Muuten toi vaikuttaa ihan asialliselta, mutta tossa on vaan ainakin yks juttu joka pistää silmään :)

Tossa tutoriaalissa ei järestää suljeta avattuja libraryja jos tulee virhe eikä MUI-applicationia saada luotua, toi vaan hyppää sillon ulos ohjelmasta. Ohjelman lopussa sit kyllä on Close_Libs() Eli toi vaan avaa noi libraryt mut ei sulje niitä jos tulee virhe, tsk tsk :) Voihan se olla vaan unohtunu, mutta tommosta ohjelmointi neuvoa ei kannattas antaa.

Muutenkin sit jos alkaa koodaamaan isompia ohjelmia, niin siitä resurssien hallinnasta kannattaa sitten huolehtia ettei tule turhia muistivuotoja. Varsinkin MUI ohjelmien kanssa kannattaa olla tarkkana, kun ladattuna saattaa olla omia customclasseja, libraryja jne.

Yks ongelma varsinki moni-ikkunaisten ohjelmien kanssa on se, että ei voida etukäteen tietää mitä käyttäjä puuhailee ohjelman ajon aikana. Lisäksi joitain resursseja saatetaan varata vaan sillon kun niitä tarvitaan, ei siis aina vaan ohjelman alussa. Yks keino on tietty käyttää stdlib:n atexit() funktiota, joka ajaa kaikki sille kerrotut funktiot ohjelmaa suljettaessa. Syöttää atexit:lle kaikki resurssien sulkufunktiot.

Mä itse oon tehny samanlaisen systeemin, jota meinaan kyllä kehittää edeleen, käyttämällä yleiskäyttöstä ADT-stackia. (ADT = Abstract data type) Eli mulla on ohjelmissa stack.c ja stack.h, jotka määrittelee ton pinon toiminnan, sit aina kun jotain palauttamiskelposia resursseja varataan, niin pointteri sitä vastaavaan resurssin vapautusfunktioon työnnetään pinoon. Sit ku varatut resurssit halutaa vapauttaa (ei välttämättä ohjelman lopussa kuten atexit:n kanssa) ni sit vaan haetaan pinosta siellä olevat funktio-pointterit ja suoritetaa ne funktiot.
Kaikki varatut resurssit vapautettu kun pino on tyhjä. Meinaan tota kehittää vieläsilleen, et pinoon työnnettäs ehkä myös parametri funktiokutsulle.

Atexit ja toi stacki-systeemi vielä varmistaa et kaikki vapauitetaa käänbteisessä järjestyksessä verrattuna varaamiseen. Tolleen ei jää niin helposti jotain vapauttamatta.

Sit toinen juttu on toi et noita ReturnID paluuarvoja kannattaa heti aluksi opetella välttään. Tossa esimerkissä 5 "omplete program" on main():n siinä pääsilmukassa switch-case rakenne missä nuuskitaan noita ReturnID:tä.

Vois melkeen sanoo, että kannattaa opetella käyttää Callback hookkeja ennemmin. Noi returnID:t on ehkä tosin helpompia tajuta aluksi.

Mut sit kun hookit on tuttuja, niin siinä pääsilmukassa pitäs mielellään olla vain MUIV_Application_ReturnID_Quit, eikä muita ReturID:itä. Hookkien etuna on se, et niiden avulla ohjelmasta saa tehtyä enemmän modulaarisen ja objektipohjasen. Samaten main() funktio ja se pääsilmukka pysyy pinenenä, siistinä ja nopeena. Hookkeja käytettäessä, MUI itse kutsuu tarvittavia funktioita eikä pääohjelman tarvitse siitä huolehtia.

[Edit: Kolme viestiä yhdistetty. -Thoriel]

 

itix
Keskiviikkona, 12. maaliskuuta, 2003 - klo 15.24:   
Aloittelijat: ignoroikaa :)

Hookkeja kannattaa välttää jos mahdollista. Suositeltavinta on käyttää custom classeja ja overloadata metodit.

 

miksuh
Keskiviikkona, 12. maaliskuuta, 2003 - klo 15.38:   
No toki niinkin :) Toi mahdollistaa helposti myös ohjelmat, joissa yhtä ja samaa ikkunaa avataan montakappaletta ja jokasella on omat arvot tekstikentissä jne. Esim PSI MUI demoissa on esimerkki tosta. Mut toi ei ole niitä helpoimpia aluksi :) ReturnID:istä suoraan hookkeihin hypääminen on helpompi tajuta aluksi :)

Lisää viestisi tähän
Viestisi:
Käyttäjätunnus: Postitus informaatiota:
Tämä on yksityinen keskustelupalsta. Vain rekisteröidyt käyttäjät ja moderaattorit voivat postittaa tänne.
Salasana:
valinnat: Aktivoi URL:t automaattisesti tässä viestissä
Toimenpide: