Seznámení s Microsoft Visual C++
Popis odpovídá programu Visual Studio 2008, ale jiná prostředí mají podobné volby a nastavení (s jinými názvy)
Help je přístupný z prostředí nebo je na http://search.msdn.microsoft.com (home http://msdn.microsoft.com/cs-cz/default(en-us).aspx, nebo support http://msdn.microsoft.com/cs-cz/aa570318(en-us).aspx, dříve http://www.msdn.com/library). V prostředí je pouze Help pro jazyk C a C++ a je dostupný přes F1 (je-li kurzor nad klíčovým slovem, pak help k tomuto výrazu). Na síti se zobrazí témata helpu také pro ostatní jazyky (Java, Pascal, C#, Basic, Fox Pro) takže je nutné pozorně vybírat, který odkaz patří pro C.
vlastní program se spouští z plochy ikonou
po spuštění se objeví prázdné prostředí. (Dále je možné spustit prostředí poklikem na již vytvořený projekt. Při pokliknutí na vytvořený zdrojový kód je nutné mu vytvořit projekt.)
budeme vytvářet konzolovou aplikaci. To je aplikace, která má vstup i výstup prostřednictvím konzoly (klávesnice, monitor)
nový projekt (aplikace) se založí ve volbě File New v záložce project. Zvolíme konzolovou aplikaci. V tomto výběru je možné i vytváření samostatných souborů v záložce Files (zdrojové i hlavičkové soubory přidávané do projektu)
z konzolových aplikací si zvolíme tu, ve které začínáme “od začátku” tedy tu, která je úplně prázdná – „Win32 console application“ (s položkou, která vytvoří prázdný soubor, nebo v dalších projektech vytvoření pouze prázdného main „application settings->empty project“). Dále je nutné zařídit, aby se soubory ukládaly do adresáře s právem zápisu, který se uchovává. To je adresář na Vašem síťovém disku (nejčastěji P). Zvolíme jméno projektu.
Můžete zkusit vytvořit i projekt “zkratkou”. To je ten, který vytváří hlavní funkci _tmain a základní soubor s ní je přímo součástí projektu. Je nutné si uvědomit, že toto je speciální volba vázaná na tento překladač a při přenosu zdrojů do jiných překladačů budete mít problémy. Tento problém nastane i v případě, že takto vytvořeným projektem budete chtít překládat soubory přenesené z jiného prostředí. (soubory stdafx … jsou totiž určeny k optimalizaci překladu a k nim musí být příslušně nastaven projekt. Pokud tedy nevhodně zkombinujete nastavení projektu a přítomnost těchto souborů, dojde při překladu k chybě).
V
případě „standardní“ instalace, by se nyní
mělo v levé části plochy otevřít okno Solution
explorer obsahující „strom“ projektu
(header, resource, source file), který nyní neobsahuje
žádné soubory (source files).
Vytvoříme soubor tak, že přes pravé tlačítko myši zvolíme Solution explorer->Source File -> Add -> New Item -> c++ file (jménu vnutíme příponu c, která zaručí překlad v jazyce C a ne C++). Pole solution explorer můžeme zobrazit v menu View/Solution explorer (ctrl+alt+l)
Pomocí stejné záložky ale s Existing Item můžete do projektu přidat již existující zdrojové soubory
Vepíšeme jednoduchý program (include stdio.h a tisk řetězce ve foru. V základní funkci main).
Pokud nad název hlavičkového souboru najedeme myší, můžeme ho pomocí pravého tlačítka otevřít.
V levé části okna je záložka ClassView, kde je možné sledovat proměnné (globální proměnné a funkce). Aktuálně je vidět jediná funkce a to funkce main (v sekci global functions ...). Poklikem na danou položku se dostaneme na její definici (zobrazí se nám a můžeme se do ní podívat).
V záložce, kterou jsme již viděli - SolutionExplorer, jsou zobrazeny soubory, které obsahuje projekt. Poklepnutím na ně se načtou a zobrazí.
Dopsaný program skompilujte a spusťte. (viz zelená šipka v pravé horní části obrázku). Pokud potřebujete pouze spustit bez debugování a tak aby se okno nezavřelo a viděli jste výpisy, použijte StartWithoutDebugging (zelená prázdná šipka Ctrl+F5)
U
hlavního nápisu (název projektu) v okně
SolutionExplorer (zobrazen bold) jde poklikem na pravé
tlačítko zobrazit menu, kde lze v properties provést
nastavení z nichž vybírám: general –
typ překladu knihoven, tj. zabudování knihoven do exe
souboru (statické knihovny) nebo pomocí DLL (dynamické
knihovny). Debugging – command arguments -text,
který je možné zadat na “dosovskou řádku”
jako argumenty spuštění programu. Zapište sem
něco a zkontrolujte, zda je to předáno jako v parametru
funkce main. V C/C++ je možno přepínat úrovně
warningů (upozornění) a nebo nastavit warningy ať se chovají
jako errory (chyby) – bez ošetření nelze tedy
přeložit. C/C++-> Preprocessor – globální
symboly (místo #define SYMBOL dodávaného
do každého modulu) pro řízený překlad, které
se vkládají při překladu do každého modulu .
Linker – debugging, debug info, mapfile. V
C/C++->CodeGeneration je položku runtimeLibrary kde
je možné nastavit zda je projekt linkován proti
dynamickým knihovnám (.NET). Vybraná nastavení
lze provádět i pro jednotlivé části projektu
(soubory – moduly).
Tlačítka na liště (buttony) – klik myší v levé části (šedý proužek) editoru – přepnutí breakpointu (bod na kterém se provádění programu zastaví). Zelená šipka – spuštění programu, kdy se zastavuje na break pointech (po skončení programu zavře okno výpisů). Build/compile – compile vytváří obj soubor z jednoho zdrojového a hledá v něm chyby z hlediska jazyka. Build/ReBuild vytvoří postupně obj ze všech zdrojových souborů v programu a poté provede link – vytvoření spustitelného exe souboru. (project je aktuální projekt, solution je soubor projektů). Build (na rozdíl od rebuild) překládá pouze položky jichž se dotýkají změny provedené od posledního překladu. Rebuild je vhodné dát v případě změny properties nebo v okamžiku, kdy přehráváme soubory projektu soubory měněnými mimo projekt.
V okně (dole) s překladem je vidět jen konečný souhrn (počet warningů a errorů). Dá se však zvětšit, či listovat nahoru a potom jsou vidět i konkrétní chyby s textem (protokol o překladu) – snažte se je přeložit a pochopit co říkají. Poklikem se dostaneme do příslušného místa na které řádek upozorňuje.
Ve funkci main zapněte breakpoint a spusťte program (spustí i překlad je-li to nutné) pro zastavování na breakpointech (zelená šipka F5).Program se zastavil na řádku, který se má teprve provést. Při zastavení se objeví okna autos a watch, ve kterých je možné sledovat proměnné a jejich hodnoty. V okně autos jsou aktuální “viditelné” proměnné, v okně watch ty proměnné, které si vybereme (lze je do okna přidávat a rušit jejich zobrazení). Je možné zde proměnné i přetypovávat, to je, že můžeme char zobrazit jako znak, nebo jako číslo (x,d,c nebo přímo (char), (int)...), nebo můžeme zobrazit i součet či součin proměnných. Přepnutí mezi zobrazením hexa a dekadickým lze i pomocí pravého tlačítka myši. Dále se objeví nová tlačítková lišta debug, která zobrazuje tlačítka pro pohyb v programu – skok na řádek, provést jednu instrukci, provést jednu funkci, vyskočit z funkce ... Při pohybu myši nad tlačítkem vidíme příslušné horké klávesy.
K ladění (debugging) programu lze používat společně s breakpointy následující volby – provádění programu až do breakpointu StartDebugging (zelená šipka plná), spuštění programu a zastavení v místě kurzoru RunToCursor (pravé tlačítko myši na daném řádku), místo na kterém se právě nacházíte najdete pomocí ShowNextStatement (žlutá šipka), breakpoint může být spojen s podmínkou (například zastavit až proměnná i>4). Pokud program chceme provádět po jednotlivých příkazech, můžeme zvolit StepOver (řádky s velkou šipkou – znamená to, že se provádí příkazy po jednom, funkce se provede jako celek), nebo StepIn (řádky s malou šipkou – provádí se příkazy po jednom, do funkcí se vstupuje). Je možné vyskočit z funkce do funkce, která ji volala (například provedeme-li nechtěně StepIn) a to pomocí StepOut (řádky s šipkou nahoru). V případě, že se trasování ubírá špatným směrem, je možné program ukončit pomocí StopDebugging (modrý čtvereček), v dalším kroku se začíná trasovat od počátku. Restart provede ukončení současného prováděného programu a spoustí program znovu od počátku (ten se zastaví na případném breakpointu).
Je možné se podívat i na strojový kód překladu – pravým tlačítkem myši klikněte v prostoru okna zdrojů a zvolte GoToDisassembly. Zde je možné nastavit pole, která se budou zobrazovat. Je vidět C originál a způsob převodu do asm. Tato volba funguje pouze pokud je daný program prováděn (=spuštěn a zastaven pomocí break).
Okna
(variables, watch, debug ...) ( které se zobrazují
podle mínění překladače), lze zapnout v Debug/Windows.
Buttony v horní liště lze definovat tak, že po stisknutí pravého tlačítka myši (které stiskneme na “podkladu” horního menu – tj.na horní liště v místě kde nejsou buttony) se objeví menu, ve kterém můžeme vypínat a zapínat zobrazované buttony.
Poslední úpravy 2008-10-01