Så här skriver du ditt första program i C++ Introduktion till att skapa Solution, Project och källkodsfil i Visual Studio 2013 Författare Anne Norling Kurs: Strukturerad programmering med C++ Kurskod:1DV433
Steg-för-steg till ett körbart program i utvecklingsmiljön Visual Studio 2013 Starta Visual Studio 2013 (eller den alternativa version du använder). Till vänster på startsidan ses då några snabblänkar (Start och Recent) för att starta nya eller öppna befintliga projekt. Dessa ska du dock inte använda just nu. Till höger finns länkar till det omfattande hjälpbiblioteket MSDN (Microsoft Developer Network), där du i fortsättningen hittar behövlig information om utvecklingsmiljön (installation, konfigurering) men även en mängd andra resurser om C++-språket. I kurswebbplatsens Länkgalleri (se menysektion Övrigt) har vi, bland en del annat matnyttigt material, lagt en länk till en samlingsplats för MSDN:s Visual C++-resurser, vilken kan vara bra att utgå från: Visual C++ resources (länk nr. 4). Här finns en grundlig genomgång av Visual Studio såväl som C++-guider och omfattande referensinformation om C++-språket och dess standardbibliotek. Du kan också klicka på menyradens HELP, för att få en innehållsförteckning över hjälpbiblioteket. Även här finns förstås ingående beskrivningar av utvecklingsverktyget samt guider för olika uppgifter. Under länken Visual Studio IDE User s Guide-> Getting started hittas t.ex. en instruktion för att skapa en första applikation: Create a simple app. OBS detta sätt ska du inte använda i denna kurs! Den beskrivna proceduren innebär att flera standardfiler med fördefinierad kod genereras av systemet, dvs. källkodsfilerna skapas med viss standardtext i. Men filerna och denna relativt avancerade kod har visat sig komplicera programmerandet och skapar ibland svårtolkade fel. Vi har inget behov av dessa filer i kursens laborationsuppgifter, så istället gör vi allt från början. I en Console-applikation får man automatiskt ett fönster att skriva i och använder cout för att skriva på skärmen. Även om avsaknaden av grafik gör det hela lite fattigt, lämpar sig denna miljö mycket bra för att koncentrera sig på hur programspråket C++ fungerar. I följande steg får du en beskrivning av hur du lämpligast går till väga för att skapa dina C++-applikationer. När du stänger startsidan visas arbetsytan i utvecklingsverktyget, där du så småningom kommer att editera dina källkodsfiler. Om du vill öppna startsidan på nytt, hittar du den under menyvalet View/Start Page. 2014 Anne Norling 1DV433, Strukturerad programmering med C++ 2 (6)
Nu är det dags att skriva ditt första (?) program. Arbetet i Visual Studio görs i ett för uppgiften skapat Project, vilket är placerat i en arbetsyta, en s.k. Solution. Denna kommer att innehålla projektet och dess inställningar, vilka aktiveras automatiskt när arbetsytan öppnas. Flera Project, som på något sätt samverkar, kan läggas i samma Solution och på så sätt få samma inställningar. I denna kurs ska dock varje laboration ha sin egen Solution med tillhörande Project. Öppna File-menyn och välj New Project för att skapa projektet Hello. Se till att dialogrutan som öppnas har alla alternativ valda enligt bilden nedan. Markera Win32 Console Application: Bör vara tom! Skriv in Hello som projektnamn. Det är möjligt att skapa en tom Solution först och i efterföljande steg skapa och lägga till Project, men vi skapar våra projekt direkt, varvid en omslutande Solution (arbetsyta) skapas automatiskt. Se därför till att kryssrutan Create directory for Solution är tom. Om du studerar på Campus kommer troligen P:\ (ditt personliga lagringsutrymme på skolans nätverk) vara den enhet där du sparar dina filer. (I vårt instruktionsmaterial används P:\ ibland som referenspunkt för beskrivna kataloger.) Om du arbetar på en privat dator, placerar du förstås dina kursprojekt någonstans i en valfri katalog på önskad enhet. Oavsett vilken datormiljö du arbetar i, bör du skapa en väl organiserad katalogstruktur, för att hålla ordning på de många(!) C++-filer du snart kommer att ha. Använd gärna den föreslagna mappstruktur som redan finns (i komprimerat format) i högermenyn till Steg 1. Vald Location ovan är ett exempel det viktiga är att du gör ett medvetet val när du sparar dina program, så att du enkelt hittar dem igen! Efter att du tryckt OK, visar guiden Win32 Application Wizard att inställningen Console Application är förvald. OBS detta ska ändras! Klicka på Application Settings, för att få fram dialogfönstret på nästa sida. 2014 Anne Norling 1DV433, Strukturerad programmering med C++ 3 (6)
Här ska du acceptera det förvalda Console Application, men markera Empty Project så att inga filer genereras automatiskt av systemet. För att undvika problem med projektet senare var noga med att dialogrutan har alla alternativ valda enligt bilden! Klicka på Finish-knappen så har du nu skapat ditt första projekt (Project) med sin arbetsyta (Solution). Kontrollera allt i Solution Explorer-fönstret till höger i programmet (om detta råkat stängas av misstag, återställer du det via View/Solution Explorer i övre menyraden). Vi ska nu skriva ett klassiskt Hello-World-program. För att göra det behövs en källkodsfil där vi kan skriva vår main-funktion. Högerklicka på projektnamnet Hello i Solution Explorer. Välj Add i menyn och New Item i undermenyn. (Om du redan har en fördefinierad fil att lägga till i projektet, vilket är fallet i vissa laborationer, väljer du alternativet Existing Item.) Med detta sätt får vi automatiskt korrekta inställningar och kan därefter välja att skapa en C++fil med filändelsen.cpp, som är det rätta för vår källkod: När det gäller att namnge programfilen så finns det flera olika standarder. Vanligast är att man ger filen samma namn som projektet. Eftersom vårt projekt heter Hello, så får filen heta Hello.cpp. När du tryckt på Add-knappen skapas filen och läggs automatiskt in i projektet. Du hittar den i Solution Explorer under mappen Source Files. Man kan även gå via menyn File / New / File... för att skapa en ny fil, och får upp samma fönster som tidigare, men med fler mappar i. Välj även då Visual C++, och C++ File (.cpp). Med detta alternativ får man ingen automatisk koppling till projektet, utan en allmän fil SourceX som uttryckligen måste sparas (som Hello.cpp) i korrekt projektkatalog Hello (File Save SourceX as...). Därefter måste filen logiskt kopplas till det aktuella projektet, vilket görs med menyvalet Add/Existing Item. Det blir alltså lite krångligare att gå den vägen än att direkt lägga till filen i projektet som vi gjorde först. 2014 Anne Norling 1DV433, Strukturerad programmering med C++ 4 (6)
Nu kan du direkt börja skriva program-koden för programmet i editorn. Här får kursboken ta vid - i det första kapitlet förklaras vad de olika begreppen i kodens syntax står för: Det är nu dags att kompilera och länka vår klass, så att vi får en objektfil. Högerklicka på projektet Hello i Solution Explorer och välj kommandot Build, så kompileras nu programfilen till en.obj-fil. Om det är fel i programkoden, kommer kompilatorn att klaga samt visa upp ett eller flera felmeddelanden i Error List (Öppnas från View-menyn om den inte syns): Om du dubbelklickar på en rad i listan, ställer sig markören på aktuell felkälla i editorn, så att man direkt kan rätta till felet. I detta fall har jag glömt den viktiga satsavskiljaren ( ; ) efter satsen på rad 9. Vi rättar och bygger om (Rebuild) och när programkoden är felfri, ska du kunna läsa i det nedre fönstret (Output) att det inte har blivit några kompileringsfel. 2014 Anne Norling 1DV433, Strukturerad programmering med C++ 5 (6)
För att skapa en exekverbar fil måste alla objektfiler som du använder länkas samman. Förutom den.obj-fil som skapas av din egen programkod, så används också cout för utskrifterna. Dessa rutiner ligger i en annan objektfil, som finns någonstans i de kataloger som används av Visual Studio. När vi bygger programmet (med Build) länkas alla objektfiler samman till en enda programfil som automatiskt får samma namn som projektet. I Utforskaren kan du nu se att underkatalogen Debug har skapats i projektkatalogen i denna hittar vi både vår Object File Hello.obj och vår Application File Hello.exe. Nu kan programmet testköras. Då använder du något av Debug-menyns två kommandon nedan, för att köra programmet på två olika sätt, med eller utan debug-information. 1. När du (i Debug-menyn) väljer Start Without Debugging (Ctrl+F5), körs programmet utan debug-information. Dessutom vilket är en viktig skillnad stängs inte console-fönstret då programmet exekverat färdigt, förrän du tryckt på någon tangent. 2. Om du klickar på Start Debugging (F5) körs programmet med debug-information och console-fönstret stängs automatiskt när programmet kört klart. Du kan sätta brytpunkter och exekvera programmet en rad i taget om du vill. Använd i så fall funktionstangenten F10 för att stega. Då kan du också titta på variablers värden, vad funktioner returnerar m.m. Debuggern är en ovärderlig hjälp för felsökning av semantiska fel, dvs. sådana logiska fel som inte beror av felaktig syntax och därför inte heller upptäcks vid kompileringen. I steg 3 finns en Introduktion till debugger, där användning av Visual Studios inbyggda debug-verktyg beskrivs mera detaljerat. Och så var det klart! När programmet körs, får du upp ett console-fönster, där utmatningen från programmet skrivs ut. När det exekverat färdigt (och du ev. tryckt på någon tangent), så försvinner fönstret och du kommer tillbaka till den vanliga utvecklingsmiljön igen. Nu har du skrivit ditt första program i Visual Studio! Lycka till med dina nya C++-program! 2014 Anne Norling 1DV433, Strukturerad programmering med C++ 6 (6)