1Цели на упражнението



Дата10.01.2017
Размер76.04 Kb.
#12403

Упражнение 1, стр. от

Упражнение 1

Запознаване с някои особености на средата Microsoft Visual C++ 6.0

1Цели на упражнението


  • Задълбочаване на познанията за и уменията за работа със средата Visual C++ 6.0. По-правилното име на тази среда е Microsoft Developer Studio 6.0.

  • Организацията на файловете, настройките на проекта и другите особености на средата, разгледани в това упражнение, се отнасят примерно на 80-90% и за по-новите среди на Microsoft, като Developer Studio .NET.

  • В предходни дисциплини е работено с конзолни приложения (Win32 Console Application) в средата на Visual C++ 6.0; в тази дисциплина ще се разработват Win32 приложения и библиотеки (Win32 Application, Win32 Dynamic-Link Library, Win32 Static Library), а в следващи дисциплини ще се работи с MFC (Microsoft Foundation Classes).

2Общи сведения за средата Visual C++

2.1Потребителски интерфейс (прозорци, ленти с инструменти, менюта на средата)


При започване на работа с Visual C++ трябва да се отвори или създаде нова работна среда (workspace). В една работна среда може да има един или повече проекти (projects). Във всеки проект има много файлове. И в най-елементарната програма има поне файл(ове) с изходен код (source, .CPP), хедери (headers, .H) и ресурси (resource, .RC). Ресурсните файлове съдържат стандартни елементи на потребителския интерфейс – диалози (включващи бутони, edits, checkboxes, radio buttons, comboboxes и т.н.), икони, менюта, растерни изображения (bitmaps), символни низове и др.. Те се създават удобно в диалог с програмиста. На етапа на свързващото редактиране (linking) те се вмъкват в изходния EXE файл. Форматът на EXE-тата за Windows е доста различен от този за ДОС. Една от разликите е именно възможността освен код, те да съдържат и ресурси.

Средата включва много ленти с бутони (toolbars), които могат да се виждат или не. Показването и скриването им става от меню Tools | Customize или чрез щракване на десен бутон на мишката в някой видим toolbar.

Основни области в прозореца на средата са Workspace и Output. Те могат да се скриват или показват от меню View.| Output има няколко различни изгледа, показващи съобщения за грешки и предупреждения при компилация, диагностични съобщения по време на изпълнение или резултати от търсене. Прозорецът Workspace също има различни изгледи - Class view, Resource view и File view, показващи структурата на проекта съответно според класовете, ресурсите или файловете.

Visual C++ предлага помощници (wizards), подпомагащи създаването на основни видове приложения. Обикновено работата със средата започва със създаване на ново работно пространство (workspace).

Терминът форма (form), познат от други среди, например Delphi, не съществува във Visual C++. Подобни по смисъл са термините диалог (dialog) и прозорец (window).

Няма да бъдат изброявани всички команди от всички менюта и toolbar-ове на средата. Разучаването им остава на индивидуалните интереси на всеки. В това упражнение ще бъде обърнато внимание на настройките на проекта.





Фиг.1. Основен изглед на средата Visual C++ 6.0


2.2Файлове


В директорията на проекта се разполагат следните source файлове, безусловно необходими за построяването на проекта:

Таблица 1. Source файлове



Разширение

Съдържание

Формат

.cpp

source файлове с код на C++

текстов

.h

хедер файлове

текстов

.rc

описание на ресурси

текстов

.dsw

описание на работната среда (workspace)

текстов

.dsp

описание на проекта

текстов

.ico, .bmp и др.

съответни ресурси

двоичен

За всеки клас в проекта има по един комплект .cpp / .h файл. Ако не се използва ООП, source-а е в една двойка .cpp / .h файлове. Освен тях се използват и следните файлове:

  • resource.h - Съдържа дефиниции на константи, свързани с ресурсите в проекта, например

#define IDI_MAINICON 128

#define IDI_MAINMENU 128



  • stdafx.cpp - Съдържа единствено

#include "stdafx.h"

  • stdafx.h - Съдържа останалите #include оператори, необходими за проекта, например

#include

#include

Препоръчително е именно в stdafx.h да се добавят други хедери, необходими за програмата. Ако например се използват мултимедийни функции, трябва да се добави #include . Желателно е това да стане в stdafx.h, а не в source файла на програмата. По-точно препоръката на Microsoft е:


  • стандартни хедери и/или такива, които не се променят често да се добавят в stdafx.h

  • собствени и/или често променяни хедери да се добавят в отделните source файлове на проекта, при това след #include "stdafx.h"

В процеса на работата си, средата създава няколко двоични файла, които са необходими за удобство, но изтриването им не е особено голяма загуба - при ново построяване на проекта те се създават отново, в най-лошия случай ще бъдат изгубени някои настройки на средата, специфични за проекта. Особено .ncb файлът има тенденция да нараства като обем, ако се работи дълго с даден проект; поради естеството му, той може да бъде спокойно изтрит без всякакви последствия за проекта.

Таблица 2 Файлове, създавани от средата



Разширение

Съдържание

.ncb

файл, подпомагащ работата на intellisense функ­цио­нал­ност­та (например автоматичното показване на списък с атрибути и методи при поставянето на . или -> след име на обект)

.opt

опции на средата, например позиции на прозорците, места и настройки на точки на прекъсване и т.н.

.aps

двоична версия на ресурсния файл (.rc)

Истинските изходни файлове, резултат от работата на компилатора и свързващия редактор, се създават в поддиректория на основната директория на проекта. При това се използва една от следните две директории - Debug или Release, според избраната конфигурация. Повече за конфигурациите - в т. 2.3

Най-важният файл там е .exe или .dll или .lib файла, продукт на целия проект. Заслужава внимание и още един файл, с разширение .pch. Това е файл, съдържащ предварително компилирани хедер файлове (занапред за краткост ще бъдат наричани прекомпилирани хедери). Предназначението му е да ускори процеса на компилация. Недостатък е обемът му - обикновено от порядъка на 5-6 MB. Особено в учебната зала, предвид мрежовата среда, възникват и други проблеми с .pch файловете. Те могат винаги да бъдат изтрити, както и всичко в Debug и/или Release директорията. В средата има команди за "почистване" (Clean) на проекта, които правят точно това.


2.3Настройки на проекта


Средата предлага огромен брой настройки, управляващи работата на компилатора, свързващия редактор, ресурсите, възможностите за настройка (debug) и други.

Особеност на средата е, че при създаване на нов проект с помощта на Application Wizard, автоматично се създават и два комплекта настройки (две конфигурации) - Debug и Release:

Debug е подходяща за настройване на програмата. Изпълнимият файл съдържа допълнителна информация, необходима само за дебъгера; в резултат изпълнимият файл е:


  • Значително по-голям по размер.

  • По-бавен за изпълнение. Това е не само поради размера, а и поради ред невидими за програмиста проверки и инициализации които се правят. Пример:

void foo()

{

char a[100];



int ia[100];

char s=a[50];

int i=ia[50];

}

В Debug версията всички неинициализирани локални променливи се запълват с 0xCC (което между другото е ASCII кода на М на кирилица), а променливите в динамичната памет (например създадени с оператора new) се инициализират с 0xCD. В Release версията не се прави никаква инициализация, като си е по правилата на C/C++ за неинициализираните локални променливи. Така за горния пример, s ще има стойност 'M', а i ще има стойност 204 (=CC16) в Debug версията, а в Release версията стойностите ще бъдат напълно случайни.



  • Попаднал в ръцете на опитен хакер, изпълнимият файл от Debug версията ще му даде много повече материал за работа.

Release версията съответно създава изпълним файл, подходящ за разпространение. Използва се за финална компилация след като програмата е настроена и с отстранени грешки. Release версията не може да се трасира в средата, съответно не могат да се наблюдават стойности на променливите по време на изпълнение (Watch) и т.н.

На Фиг. 2 са представени два начина за достигане до настройките на проекта - с избор от главното меню на Project | Settings или с десен клик върху проекта в прозореца Workspace, File view и избор на Settings от контекстното меню.







Фиг.2а.

Фиг. 2б

Начини за достигане до настройките на проекта

По подразбиране при създаването на нов проект се работи с Debug версията. Смяната на комплекта настройки може да стане с избор от главното меню на Build | Set Active Configuration.

3Технология за създаване на изпълними модули със средата Microsoft Visual C++


Технолгията е представена на Фиг. 3. Всички системни средства (компилатори, свързващ редактор) са част от средата и се намират в директория \VC98\BIN


Фиг. 3. Технологична схема за построяване на изпълними модули с MS VC 6.0



4 Задачи

Задача 1 Да се разгледат файловете, с които работи и които създава средата. Да се сравнят Debug и Release конфигурациите на база "Typical Hello World application".

Указания:



  • Стартирайте Visual C++

  • Изберете File | New

  • От появяващия се диалог изберете Projects, а в него – Win32 Application. При това може автоматично да се създаде нова работна среда (workspace). В полето Project name трябва да се въведе име на проекта, което става име и на изпълнимата програма. В полето Location може да се посочи директория, където да се разположат всички файлове на работната среда.

  • От следващия екран изберете A typical Hello World application

  • След натискане на Finish автоматично ви се генерира работеща, макар и елементарна програма.

  • Постройте и изпълнете проекта. Разгледайте изходните файлове. Обърнете внимание на .pch файла, например размера му.

  • Разгледайте всички настройки (меню Project | Settings или десен клик върху проекта в прозореца Workspace, File View).

  • Изключете поддръжката на предварително компилирани хедери (Precompiled headers), изчистете проекта и постройте отново. Вижте отново изходните файлове.

  • За изключването на precompiled headers вижте от главното меню Project | Settings | C/C++ | Precompiled headers.

  • За да изчистите проекта: от главното меню - Build | Clean или десен клик в Workspace, File View и избор на Clean (Selection only) от контекстното меню.

  • За да построите проекта: от главното меню Build | Build xxx.exe или десен клик в Workspace, File View и избор на Build (Selection only) от контекстното меню.

  • Двете стъпки (изчистване на проекта и ново построяване) могат да се съчетаят чрез избор на команда Rebuild от главното меню или контекстното меню на проекта.

  • По подразбиране средата работи с Debug версията на проекта. Постройте и Release версията. Сравнете размерите на получените изпълними файлове за Debug и Release версиите.

Задача 2 Да се проследи пътят на изпълнение в програмата. Указания:

  1. Проследяването на пътя на изпълнение може да стане с постъпково изпълнение. Необходимите за целта команди могат да се задават по следния начин от клавиатурата:

  • F10 - изпълнява поредния ред от програмата (F8 в Borland средите)

  • F11 - трасира поредния ред от програмата (F7 в Borland средите)

  • F5 - стартира програмата под Debugger (т.е. управлението ще се прекъсне, ако се достигне до предварително зададена точка на прекъсване)

  • Ctrl-F5 - стартира програмата без Debugger (Ctrl-F9 в Borland средите)

  • F9 - задава/отменя точка на прекъсване на текущия ред (Ctrl-F8 в Borland средите)

  1. Трасирането на програма, управлявана от събития, не е същото, както за класическите програми. Например изпълнявайки програмата ред по ред, никога няма да се стигне до функцията WndProc, в която всъщност е основната функционалност на всяка Windows програма. Тази функция е callback, т.е. никъде не се вика пряко от програмисткия код, а се извиква вътрешно от Windows. За да се проследи нейното изпълнение, трябва да се постави точка на прекъсване някъде в тялото й.

Каталог: download -> SisProgramirane -> Uprajnenia
download -> Задача Да се напише програма която извежда на екрана думите „Hello Peter. #include void main { cout }
download -> Окс“бакалавър” Редовно обучение I до III курс
download -> Конспект по дисциплината „Екскурзоводство и анимация в туризма" Специалност: "Мениджмънт в туризма"
download -> Дипломна работа за придобиване на образователно-квалификационна степен " "
download -> Рентгенографски и други изследвания на полиестери, техни смеси и желатин’’ за получаване на научната степен „Доктор на науките”
Uprajnenia -> Програма 1 част 1Цели на упражнението Подробно запознаване с процесите на регистриране на клас и създаване на прозорец
Uprajnenia -> 1Цели на упражнението
Uprajnenia -> 1Цели на упражнението


Сподели с приятели:




©obuch.info 2024
отнасят до администрацията

    Начална страница