Kirjautuminen

Haku

Tehtävät

Oppaat: QBasic: Omat kirjastot

Kirjoittaja: Antti Laaksonen

QuickBasicin versiossa 7.1 on mahdollista luoda omia QLB-tunnuksisia kirjastotiedostoja, joissa on aliohjelmia, joita sitten voi käyttää toisissa ohjelmissa. Jokainen kauemmin QBasicilla ohjelmoinut on varmasti törmännyt lähdekoodin kiusalliseen 64 kt:n rajoitukseen. Kirjastoja käyttämällä tämä ongelma poistuu, sillä eri ohjelman osat linkitetään vasta käännösvaiheessa.

Kuinka homma toimii käytännössä

Heti tulee pieni esimerkki. Tehdään ensin kirjastotiedosto. Tämä tapahtuu aivan samoin tavoin kuin tavallisen QBasic-ohjelman kirjoittaminen eli QBasic auki ja kirjoittamaan. Esimerkkinä on aliohjelma UkkoNooa, joka soittaa tutun sävelmän.

SUB UkkoNooa
  PLAY "o3l8cccedddfeeddc"
END SUB

Sitten voidaankin jo luoda kirjasto. Kun ohjelma on tallennettu vaikka UKKONOOA.BAS-nimiseksi, painetaan Run-valikosta löytyvää Make Library... -kohtaa. Esiin tuleva ikkuna on melko samannäköinen kuin EXE-tiedostojen kääntämisessä. Uuden kirjaston nimi voi olla vaikkapa UKKONOOA.

Kirjaston käyttäminen toisessa ohjelmassa

Kun kirjasto on luotu, on Qbasicin hakemistoon ilmestynyt kaksi tiedostoa, UKKONOOA.LIB ja UKKONOOA.QLB. Tarvittava tiedosto on UKKONOOA.QLB, ja tämä saadaan mukaan uuteen ohjelmaan käynnistämällä QBasic komennolla

C:\QBASIC\QBX /L UKKONOOA.QLB

Huomaa, että tiedoston on oltava samassa hakemistossa, kuin itse QBX.EXE, jotta se löytyisi. Kirjasto pitää vielä määritellä ohjelman ensimmäisillä riveillä:

DECLARE SUB UkkoNooa ALIAS "UkkoNooa" ()

Ja sitä voidaan kutsua ohjelmasta esimerkiksi seuraavasti:

CALL UkkoNooa

Kun käynnistät ohjelman, pitäisi tietokoneen piipperistä kuulua Ukko Nooa.

Kun tehdään "kunnon ohjelmaa", vaikkapa laajaa peliä, voidaan yhteen kirjastoon laittaa grafiikka-aliohjelmat, toiseen käyttöliittymä ja kolmanteen vaikkapa tuloslistan käsittely. Aliohjelmien kutsuminen onnistuu ilman ohjelman erillistä kääntämistä suoraan editorista, joten ohjelman kehitys on helppoa.

Kuinka tämä on mahdollista...

QBasicilla EXE-tiedosto luodaan itse asiassa kahden ohjelman yhteistyönä. Ensin ohjelma käännetään BC.EXE:llä OBJ-tiedostoksi, jonka jälkeen se linkitetään LINK-ohjelmalla EXE:ksi. Kirjastotiedostot lisätään vasta linkitysvaiheessa, ja 64 kt:n kokorajoitus on ainoastaan BC.EXE:llä, joten kun ohjelman osat käännetään erikseen, rajoja ei oikeastaan ole.

Kommentit

Jesoft [05.04.2003 22:47:57]

#

ohhoh!aika masee

(nimetön) [15.06.2003 15:36:06]

#

Mitä varten Qb:ssä on tuo rajoitus jos sen voi kerran noin helposti ohittaa. Voiko siitä olla jotain haittaa koneelle jos suorittaa liian ison QB:llä thedyn ohjelman?

E.K.Virtanen [30.01.2004 19:31:05]

#

Ok, kiitos vaan. Tämän takia siis en nuku koko viikonloppuna kun tuli tarve tehdä eräs ohjelma nyt sitten tuolla QBasicilla :D

Touho [12.04.2004 19:31:18]

#

Mä en saanut toimimaan :(.
Ensin, kun tekee ohjelman, johon tekee sen ukkonooa subin, niin pitääkö siinä pääohjelmassa olla mitään tekstiä?

Ja kun avasin sen kirjaston ohjelmaan, niin en mä siellä mitään kirjasstoa nähnyt...

herkko [28.05.2004 21:24:24]

#

Hmm.. Mites onko yhdelläkirjastotiedostolla siis rajoittamaton koko? Siis jos teen ison ohjelman (yli 64kt) kokonaan yhteen kirjastoon, ja sitten teen pikkuohjelman, joka kutsuu ohjelman kirjastosta, niin onnistuuko sellainen?
Entä pitääkö kirjasto-tiedostot sisällyttää ohjelman mukaan kun se on käännetty exeksi ja se on menossa levitykseen?

miiro [31.05.2004 11:33:19]

#

tottakai

Kirjoita kommentti

Huomio! Kommentoi tässä ainoastaan tämän oppaan hyviä ja huonoja puolia. Älä kirjoita muita kysymyksiä tähän. Jos koodisi ei toimi tai tarvitset muuten vain apua ohjelmoinnissa, lähetä viesti keskusteluun.

Muista lukea kirjoitusohjeet.
Tietoa sivustosta