Kurz Visual C++ (4.) V prvnφ Φßsti dneÜnφ lekce si povφme, jak p°edßvßme programu parametry p°φmo z v²vojovΘho prost°edφ VC++. V druhΘ Φßsti si povφme n∞co o lad∞nφ programu. 4.1. P°edßvanφ parametr∙ programuPokud program, kter² vy₧aduje parametry p°φkazovΘ °ßdky, spouÜtφte p°φmo z p°φkazovΘ °ßdky, nenastßvß ₧ßdn² problΘm, proto₧e parametry jednoduÜe napφÜete za jmΘno programu a ka₧d² parametr odd∞lφte mezerou. Co kdy₧ ale chcete, aby takov² program Üel spustit (a ladit) p°φmo z VC++. Program, kter² vy₧aduje parametry, obvykle nepracuje sprßvn∞ pokud ₧ßdnΘ nedostane. VC++ implicitn∞ ₧ßdnΘ parametry nep°edßvß, ale dß se nastavit tak, aby p°edßval tytΘ₧ parametry jako na p°φkazovΘ °ßdce. A jak to provedeme? P°epn∞te se na kartu Debug a vepiÜte do °ßdku Program arguments parametry, kterΘ budou p°i spuÜt∞nφ p°edßny programu. V tomto p°φpad∞ mßme otev°en² projekt Functions, co₧ je p°φklad z prvnφho kurzu o C/C++. Tento program vy₧aduje parametry. Jsou to dv∞ kladnΘ celoΦφselnΘ hodnoty (v mΘm p°φpad∞ 5 a 6). Nynφ, kdy₧ spustφte program, vÜechny v²poΦty prob∞hnou sprßvn∞ a vypφÜe se sprßvn² v²sledek.
4.2. Lad∞nφ programuKa₧d² programßtor musφ v∞d∞t, jak mß ladit program. ╚asto si myslφte, ₧e program prost∞ musφ fungovat, ale on nefunguje. Co s tφm? Mßte dv∞ mo₧nosti. Prvnφ je, ₧e se budete dφvat do k≤du a doufat, ₧e najdete chybu. V duchu si budete program pouÜt∞t. Druhß mo₧nost je p°evedenφ vaÜich myÜlenek do reality tφm, ₧e program budete ladit. Program se normßln∞ spustφ, ale vy budete moci sledovat, jak program pracuje krok po kroku, budete moci sledovat obsah vybran²ch prom∞nn²ch, budete moci vid∞t obsah pam∞ti, obsah registr∙ procesoru atd. Zkrßtka lad∞nφ je velmi d∙le₧itß souΦßst, bez kterΘ se jist∞ neobejdete. Lad∞nφ programu je principieln∞ v ka₧dΘm v²vojovΘm prost°edφ stejnΘ. V ka₧dΘm IDE se m∙₧ete dφvat "do" prom∞nn²ch atd. JinΘ je akorßt ovlßdßnφ Debugeru (ladiΦe). Ji₧ vφte, ₧e VC++ jsou dva re₧imy kompilace: Debug a Release. Jak z nßzv∙ vypl²vß, ladit budete moci jen v re₧imu Debug a pak se budete modlit, aby v re₧imu Release vÜe fungovalo. ObΦas se stane, ₧e v re₧imu Debug vÜe chodφ a v Release nikoliv. To jsou ovÜem mßlo pravd∞podobnΘ varianty a tφm se zab²vat nechci. D∙le₧itΘ pojmy v oblasti lad∞nφ Asi nejd∙le₧it∞jÜφ pojem je tzv. Break point (neboli zlomov² bod?).
Break point (Φesk² p°eklad se nepou₧φvß) je skuteΦn∞ bod n∞kde v programu,
kde kterΘm dojde k p°eruÜenφ programu a p°edßnφ jeho b∞hu vßm, jako₧to ladiΦ∙m.
Break point m∙₧ete umφstit prakticky kamkoliv do vaÜeho k≤du a jakmile se
program dostane k tomuto bodu, je okam₧it∞ p°eruÜen. VÜe si budeme zkouÜet na
p°φkladu z prvnφho kurzu o C/C++. Otev°ete si tento projekt a kurzorem naje∩te na °ßdek, kam chcete vlo₧it Break point a pak stiskn∞te
F9. Na zaΦßtku °ßdku se objevφ ΦervenΘ koleΦko, kterΘ oznaΦuje Break
point. Break point m∙₧ete takΘ vlo₧it p°es toolbar tlaΦφtkem ruky: |
Break point odstranφte stejn∞ jako jste ho p°idali: stiskem F9 nebo stiskem ruky na °ßdce, kde je break point vlo₧en.
Poznßmka: Kdy₧ spustφte program v re₧imu Release a budete mφt nastavenΘ n∞jakΘ break pointy, VC++ vßm oznßmφ, ₧e tyto break pointy budou vypnuty. Jak u₧ jsem °φkal, v re₧imu Release ladit nelze, tak₧e tento jev je normßlnφ.
Nynφ m∙₧ete program spustit. Nastaven² break point je hned na zaΦßtku
programu, tak₧e program se jakoby spustφ, ale ihned je p°eruÜen a fokus se vrßtφ
na okno VC++, kterΘ se podstatn∞ zm∞nφ a m∙₧e vypadat n∞jak takto:
Jak je mo₧no vid∞t na obrßzku, je tu spoustu nov²ch okΘnek, kterΘ si te∩ popφÜeme. Okna lze libovoln∞ p°esouvat, m∞nit jejich velikost nebo zavφrat. Zav°enΘ okno znovu aktivujeme stiskem pravΘho tlaΦφtka myÜi na p°echodu z jednoho okna do druhΘho. Objevφ se kontextovΘ menu, kde vidφte zobrazenΘ (zaÜkrtanΘ) polo₧ky vΦetn∞ toolbar∙. Pravd∞podobn∞ nebudete vyu₧φvat vÜechna okna najednou a tak si plochu uspo°ßdejte podle sv²ch pot°eb.
DobrΘ rady:
A to je asi tak vÜechno. Tato problematika je docela rozsßhlß, tak₧e kdybyste se cht∞li na n∞co zeptat, staΦφ mi napsat.
© 2001 Vogel Publishing, design by ET NETERA