Microsoft Visual C++ 2010 Express Edition Używanie Visual C++ 2010 Express do kompilacji programów napisanych w C. Uruchamiamy Microsoft Visual C++ 2010 Express (rysunek poniżej) i tworzymy nowy projekt (New Project ) Rysunek 1: Microsoft Visual C++ Express po uruchomieniu. Uwaga: jeżeli po uruchomieniu ekran wygląda zupełnie inaczej, to możemy przywrócid typowe rozmieszczenie elementów interfejsu programu Microsoft Visual C++ 2010 Express w sposób pokazany na kolejnym rysunku poleceniem Reset Window Layout. Rysunek 2: Przywracanie standardowego układu okien interfejsu IDE. Nowy projekt ma byd pustym projektem (Empty Project). Inne opcje chwilowo nas nie interesują. W rubryce Name wpisujemy nazwę projektu, np. test (lub inną, jaka nam będzie potrzebna). Automatycznie zostanie wypełnione pole Solution name, czyli ogólny plan rozwiązania zagadnienia. Visual C++ zaproponuje nam utworzenie nowego katalogu, na co się zgadzamy. Ogólnie, pracując nad jakimś zagadnieniem, możemy np. jednocześnie pracowad nad kilkoma programami i bibliotekami na raz, mając je zebrane pod jedną nazwą właśnie jako solution. Każdy tworzony program lub biblioteka to project. Projekt może zawierad różne pliki (w zależności od tego jaki to projekt). Dla ułatwienia pozostaniemy przy solution z jednym tylko projektem. W takim przypadku najprościej Sławomir Marczyoski 1/8 i4m-lab-1.docx
jeżeli w obu przypadkach będzie to ta sama nazwa. Uwaga: to będzie także nazwa gotowego programu (czyli aplikacji). Wybieramy OK aby przejśd dalej. Rysunek 3: Wybieramy Empty Project. Klikamy prawym klawiszem myszy w Solution Explorer na Source Files i wybieramy Add New Item, tak jak to jest pokazane na rysunku. Rysunek 4: Dodawanie nowego kawałka kodu źródłowego. Wybieramy C++ file (.cpp) i wpisujemy nazwę pliku z rozszerzeniem.c w rubryce Name. Gdybyśmy wybrali, podpowiadane nam przez środowisko Visual C++, rozszerzenie.cpp, to plik byłby utworzony z rozszerzeniem.cpp. Klikamy na Add. Jednak jeżeli pełna nazwa pliku kooczy się na.c, to kompilator będzie domyślnie traktował taki plik jako plik w języku C. W ten sposób dodajemy po prostu nowy plik źródłowy w języku C, pomimo iż nie ma takiej opcji w menu. Sławomir Marczyoski 2/8 i4m-lab-1.docx
Rysunek 5: Aby wstawid plik źródłowy, który będzie w C a nie w C++, wybieramy opcję C++ i wpisujemy nazwę z rozszerzeniem.c. Jeżeli wszystko zrobiliśmy prawidłowo, to pojawi się nowe okno z etykietką taką jak nasza nazwa pliku (czyli test.c). Wpisujemy prosty program testowy (klawiatura działa podobnie jak w Microsoft Word w szczególności tak samo działają kombinacje klawiszy służące do wycinania, kasowania, wklejania, wyszukiwania i zamieniania tekstu): int main(void) { return 0; } Klikamy na ikonę dyskietki i zapisujemy tekst źródłowy naszego programu. Pionowy zielony pasek pokazuje te fragmenty programu, których nie zmienialiśmy od chwili zapisu. Rysunek 6: Środowisko Visual C++ 2010 Express przygotowane do pisania programu w C. Sławomir Marczyoski 3/8 i4m-lab-1.docx
Możemy zapisywad pliki, także ze zmianą nazwy, wybierając po prostu odpowiednią pozycję z menu. Rysunek 7: Menu File programu Microsoft Visual Studio C++ 2010 Express. Napisany i zapisany program możemy próbowad uruchomid naciskając zielony trójkąt-strzałkę) tak jak kolejnym rysunku. Można też wykorzystad do tego celu menu Build i menu Debug. Pamiętajmy, że chod skompilowany gotowy program będzie można uruchamiad bez Visual Studio, to uruchamianie go ze środowiska IDE drastycznie ułatwia wyłapanie ewentualnych błędów i testowanie. Rysunek 8: Uruchomienie programu test w środowisku IDE MS Visual C++ 2010 Express. Byd może zostaniemy zapytani, czy projekt ma byd przekompilowany na nowo odpowiadamy Yes. Rysunek 9: Pytanie o zezwolenie na kompilację (niepotrzebne, można je wyłączyd). Sławomir Marczyoski 4/8 i4m-lab-1.docx
Program zostanie skompilowany i uruchomiony. Prawdopodobnie nie zauważymy efektu działania naszego programu będzie działo się to za szybko, abyśmy coś spostrzegli. Zwródmy uwagę, że na dole, w okienku Output pojawią się różne komunikaty diagnostyczne: między innymi ten, że program zakooczył się z kodem 0 (has exited with code 0), czyli po prostu system dostał 0 w wyniku działania return 0; jakie jest w naszym programie. Rysunek 10: Program wykonał się bez błędów. Jeżeli popełniliśmy jednak jakieś błędy, które mogły byd wykryte przez kompilator, to pojawi się informacja błędach (errors) i nieudanej próbie zbudowania programu (build: 0 succeded, 1 failed). Rysunek 11: Błędy w programie rozpoznane w czasie kompilacji/konsolidacji. Sławomir Marczyoski 5/8 i4m-lab-1.docx
Błędne instrukcje są podkreślone na czerwono, wystarczy wskazad je myszą a pojawi się plakietka z opisem błędu (w konkretnym przypadku Error: indentifier return0 is undefined ). Lista błędów jest także na dole, w oknie Output wskazanie (dwuklik) na komunikacie pokazuje od razu linię programu którą trzeba byd może poprawid. Rysunek 12: diagnostyka błędów syntaktycznych w Microsoft Visual C++ Express. Kliknijmy na lewy margines w edytorze tak jak to jest pokazane poniżej aby ustawid tzw. break point, czyli punkt zatrzymania (duża czerwona kropka). Rysunek 13: Umieszczanie punktu zatrzymania. Sławomir Marczyoski 6/8 i4m-lab-1.docx
Jeżeli teraz uruchomimy program, to będzie on działał tak długo, aż nie zostanie napotkany punkt zatrzymania. Pozwala to na spokojne obejrzenie tego co program zrobił. W konkretnym przypadku widad czarne okno, czyli okno konsoli systemu MS Windows. Rysunek 14: Program zatrzymany w punkcie zatrzymania (break point). Wybierając polecenie Disassembly można podejrzed jak kompilator przetłumaczył nasz program. Zwracamy uwagę na to, że wraz z uruchomieniem programu pojawiły się dodatkowe możliwości (nowe ikonki na listwie narzędzi). Rysunek 15: Program w czasie zatrzymania dezasemblacja. Możemy zmienid profil kompilacji: z używanego debug (czyli program będzie kompilowany tak, aby jak najłatwiejsze było wyszukiwanie w nim ewentualnych błędów i pomyłek) na release (czyli przeznaczony do rozpowszechniania, zoptymalizowany pod względem prędkości działania i ewentualnie rozmiaru potrzebnej pamięci). Sławomir Marczyoski 7/8 i4m-lab-1.docx
Rysunek 16: Sam program nic skompilowany jako release to tylko dwie instrukcje kodu maszynowego zajmujące 3 bajty. Klikając prawym klawiszem myszy na etykietkę z nazwą programu i wybierając z menu kontekstowego Open Containing Folder możemy zobaczyd nasz plik źródłowy (w tym przypadku tekst.c). Rysunek 17: Szukanie gdzie konkretnie jest zapisany plik test.c. Dobrze, jeżeli w systemie są jawnie pokazywane rozszerzenia plików, bo wtedy łatwo znaleźd wszystkie pliki napisane w języku C (zakładając, że każdy ma rozszerzenie.c) Rysunek 18: Plik z kodem źródłowym jest zwykłym plikiem tekstowym i może byd otwarty np. w Notatniku. Znalezienie, gdzie znajduje się plik (pliki?) wykonywalne, które powstały w wyniku kompilacji test.c, pozostawiam jako dwiczenie do samodzielnego wykonania. Sławomir Marczyoski 8/8 i4m-lab-1.docx