C++ Builder -ohjeita

Tämän dokumentin tarkoituksena on auttaa opiskelijaa selviämään Ohjelmointi-kurssista käyttäen Borlandin C++ Builder -kehitysympäristöä.

Aloitus

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

Työskentelystä

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.

Pikanäppäimiä

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

Asetuksista (Project->Options -dialogi)

Compiler

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.

Advanced Compiler

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.

C++

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

CodeGuard ehdottomasti päälle! Varoittaa epätoivotuista NULL-osoittimista ja vapauttamattomasta muistista. Yksi Builder5:n (ja eteenpäin) hyödyllisimmistä ominaisuuksista.

Linker- ja Advanced -linker

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.

Directories

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.

EXE -tiedoston ajo ilman Builderia

Jos haluat ajaa EXE-tiedoston koneessa, jossa ei ole Builderia ja et halua pakata mukaan paria megaa DLL-tiedostoja. Käännä projektisi seuraavasti:

Projektit ja komponentit

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.

Käyttöliittymästä

Builderin kustomoitava käyttöliittymä on hyvin tehokas keino menettää hermot ikkunasekamelskan takia. Kuitenkin

  1. Pienellä vaivannäöllä käyttöliittymän saa kustomoitua ihan käytettäväksi.
  2. Kun käyttöliittymän on saanut kustomoitua, se kannattaa tallettaa. Helpoiten se käy painamalla yleensä päämenun oikealla puolella olevaa nappia save current desktop tai Tools->Environment options->Preferences -välilehdeltä Autosave Desktop (myös Autosave Project on usein hyödyllinen).

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

Valid XHTML 1.1! Kurssin sivulle
Miika Nurminen ()
Viimeksi päivitetty: 01.02.2002