Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: QB: Muuttuja-arvojen säilyminen kirjastoissa

hunajavohveli [23.01.2004 16:43:10]

#

Otsikko ei välttämättä kuvaa asiaa kovin selkeästi, mutta tällainen on ongelma:
Kirjastossa on kaksi aliohjelmaa. Toinen aliohjelmista määrittelee tiettyjen muuttujien arvoja, joita käytetään toisessa aliohjelmassa.
Pääohjelma kutsuu ensin kirjastosta määrittelyaliohjelmaa ja sitten varsinaista aliohjelmaa, joka suorittaa toimintonsa määriteltyjen muuttujien perusteella. Mutta nyt näyttäisiä siltä, että muuttujien arvot nollaantuvat sen jälkeen kun kirjastosta on poistuttu, ja määritellyt muuttujat ovat taas nollaantuneet, kun kutsutaan toista aliohjelmaa. Yritin pistää kirjastoon COMMON SHARED:in mutta se ei auttanut.

Niin ja sitten toinen ongelma: Käynnistän QBasicin erään kirjaston parametreillä. Nyt COMMON SHARED ei anna minun "jakaa" muita muuttujia kuin niitä, jotka esiintyvät myös ladatussa kirjastossa.

Mitenkähän tällaiset ongelmat saisi ratkaistua?

tn [23.01.2004 17:10:01]

#

Arvaus(ongelma1): Mitä jos määrittelisit muuttujat COMMON SHARED :illa itse ohjelmassa?
On aivan pakko myös kysyä, kuinka "poistutaan kirjastosta"?

Antti Laaksonen [23.01.2004 22:50:42]

#

Tein kirjaston, jonka alussa on määritelty muuttuja COMMON SHARED -lauseella. Toinen kirjaston aliohjelma muuttaa muuttujan arvon ja toinen tulostaa sen. Ainakin minulla kaikki tuntuu toimivan oikein, kun kutsun pääohjelmasta ensin toista kirjastossa olevaa aliohjelmaa ja sitten toista. Jos taas laitan myös pääohjelmaan samanlaisen COMMON SHARED -määrittelyn, muuttujan arvo on käytössä myös pääohjelmassa.

hunajavohveli [24.01.2004 12:42:50]

#

Joo näyttäisi pelaavan, mutta entäs tuo toinen ongelma? COMMON SHARED toimii ainoastaan niihin muuttujiin, jotka löytyy kirjastosta ja se on aika kummallinen juttu minun mielestäni.

hunajavohveli [28.01.2004 14:27:26]

#

Rupesin tuossa kuitenkin vielä miettimään, että miksi esim LameVGA:ssa pitää laittaa vain VgaInit ja VgaExit, eikä mitään COMMON SHARED:eja? Johtuuko se siitä Lame.bi-tiedostosta? Ja jos johtuu, niin miten sellainen .bi-tiedosto tehdään?

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta