Tämän dokumentin tarkoituksena on auttaa opiskelijaa selviämään Ohjelmointi-kurssista käyttäen Borlandin C++ Builder -kehitysympäristöä.
Jos teet harjoitustyötä kotona, asenna Builderin päivityspaketti. Löytyy kurssi-CD:ltä tai suoraan Borlandin sivuilta.
Tarkista ohjeet konsolisovelluksen tekemisestä.
Jos ohjelmasi ei käänny, varmista, että kyseessä on todellakin konsolisovellus. Erityisesti VCL:n ei pidä olla päällä. Jos olet epävarma, tee uusi projekti.
Lisää breakpoint (F5) ohjelman viimeiselle riville, jotta tulostus näkyy ohjelmasta poistuttaessa. Älä turhaan lisää koodiin ylimääräistä fgets tms. rivin kyselyä.
Jos haluat muokata tai kääntää verkkolevylle (U- tai W-asema) tallennettua projektia, kopioi tiedostot ensin C:\mytemp\ohj\omatunnus -hakemistoon (älä editoi tiedostoja suoraan verkkolevyltä). Työaseman oman kiintolevyn (C-asema) käyttö on huomattavasti nopeampaa kuin verkkolevyn, eli ohjelma kääntyy nopeammin. Tehtyäsi haluamasi muutokset, kopioi projekti takaisin verkkolevylle.
Kun siirrät harjoitustyötä verkkoon, muista laittaa varsinaisten ohjelmatiedostojen lisäksi myös projektitiedostot (*.bpr ja *.bpf).
Joihinkin ongelmiin saattaa käytännössä auttaa build all.
Menujen ja päällekkäisten ikkunoiden selaamisen sijaan monet toiminnot hoituvat nopeammin pikanäppäimillä (kuten kaikissa windows-ohjelmissa). Seuraavassa joitakin tärkeimpiä:
Lisätietoa pikanäppäimistä on ohjelman avustuksessa avainsanalla keyboard shortcuts
Yleinen ongelma on, että Builder ei saa kirjoittaa jotain haluamaansa tiedostoa Agoran koneelle. Kohdassa pre-compiled headers->file name merkitään tiedosto, jossa Builder säilyttää esikäännettyjä otsikkotiedostoja. Oletusarvoisesti jossain Builderin vakiohakemistossa (jonne Agorassa ei saa kirjoittaa). Vaihda ilman mitään polkuja tai hakemistoon, johon on kirjoitusoikeudet. Siis ei ($bcb)vcl50.csm, vaan c:\temp\vcl50.csm.
Jos esikäännettyjä otsikkotiedostoja ei ole päällä, ne kannattaa laittaa päälle (cache pre-compiled headers). Tämä nopeuttaa käännöstä ainakin periaatteessa.
Instruction set on säädettävä koneen prosessorin mukaan. Jos omalla koneella on pentium pro- asetuksilla ja sitten yrittää ajaa EXEn yliopiston pentium-koneella, seuraukset ovat tuhoisat. Turvallisinta lienee pitää Pentium -asetuksilla.
Enable RTTI kannattaa laittaa päälle, jos haluat käyttää typeid- tai dynamic_cast -operaattoreita (joista dynamic_cast on suositeltavampi).
Lisäksi Enable exceptions päälle poikkeusten käyttöä varten.
CodeGuard ehdottomasti päälle! Varoittaa epätoivotuista NULL-osoittimista ja vapauttamattomasta muistista. Yksi Builder5:n (ja eteenpäin) hyödyllisimmistä ominaisuuksista.
Optioiden pitäisi olla OK oletusarvoisesti. Useimmat Linker-virheet (unresolved external) selviävät yleensä, kun vain lisää projektiin sen CPP- tai LIB- tiedoston, jossa haettu funktio on.
Kannattaa aina tarkistaa, jos tekee projektia, joka käsittelee useampia hakemistoja ja sitä yritetään kääntää useammalla koneella. Yleensä absoluuttiset polut on syytä poistaa.
HUOM! Jos haluat käyttää n-asemalla olevia aliohjelmakirjastoja suoraan n-asemalta, merkitse Intermediate output-kohtaan jokin kirjoitusoikeudellinen hakemisto (esim. c:\temp\). Lisäksi pitää tietenkin merkitä include path -kohtaan n:\kurssit\cpp\ali\ ja lisätä projektiin haluamasi tiedosto, esim n:\kurssit\cpp\ali\mjonot.c. Syy: opiskelijoilla ei ole kirjoitusoikeutta n-asemalle. Jos intermediate output -kohta on jäänyt tyhjäksi, Builder yrittää käännöksen aikana kirjoittaa tilapäistiedostoja n-asemalle ja käännös keskeytyy.
Jos haluat ajaa EXE-tiedoston koneessa, jossa ei ole Builderia ja et halua pakata mukaan paria megaa DLL-tiedostoja. Käännä projektisi seuraavasti:
CBuilder saattaa linkata VCL-projekteihin LIB -kirjastoja, joita ei välttämättä ole olemassakaan (esim. jäänteenä jostain edellisestä projektista tai vanhasta komponentista). Näistä LIBeistä ei välttämättä pääse eroon muuten kuin editoimalla suoraan projektitiedostoa (joka onneksi on XML-formaatissa).
Huomaa, että projektitiedostoa pitää editoida builderin ulkopuolella jollain tekstieditorilla, vieläpä niin, että haluttu projeti on suljettu builderissa. Muuten se lisää nämä epätoivotut libit projektiin automaattisesti.
Muista ongelmista selviää yleensä säätämällä ja tarvittaessa lisäämällä tai poistamalla packages-välilehden design- ja runtime packageja. Hakemistojen täytyy luonnollisesti olla kunnossa.
Builderin kustomoitava käyttöliittymä on hyvin tehokas keino menettää hermot ikkunasekamelskan takia. Kuitenkin
Eräs käyttökelpoinen järjestely:
Siis ei irrallisia ikkunoita, vaan kannattaa koota useampia jonkun isomman pääikkunan alle ja dockata ne yhteen (kun upotettavan ikkunan rajat nakyvat pää ikkunan keskellä, ei reunassa.)
Käyttöliittymän kustomoitavuutta kannattaa käyttää hyödyksi! Yleensä ikkunat jäävät vain toistensa alle ja sitten kiroillaan, kun aina saa menun kautta ottaa Project managerin esille kun ei sitä pikanäppäinyhdistelmääkään (CTRL+ALT+F11) aina muista...