
- •«Технология программирования»
- •Самара 2007
- •Содержание
- •1.5 Компиляция, компоновка и выполнение проекта . . . . . . . . . . . . . . . . . . . . . . . . . .10
- •Введение
- •1.1 Запуск ide. Типы приложений
- •1.2 Создание нового проекта
- •1.3 Добавление к проекту файлов с исходным кодом
- •Добавление существующего файла
- •Добавление нового файла
- •1.4 Многофайловые проекты
- •1.5 Компиляция, компоновка и выполнение проекта
- •1.6 Проблемы с вводом-выводом кириллицы
- •1.7 Конфигурация проекта
- •1.8 Как закончить работу над проектом
- •1.9 Как открыть проект, над которым вы работали ранее
- •1.10 Встроенная справочная система
- •1.11 Работа с отладчиком
- •1.12 Установка точки прерывания
- •1.13 Выполнение программы до точки прерывания
- •1.14 Пошаговое выполнение программы
- •1.15 Проверка значений переменных во время выполнения программы
- •1.16 Окна Auto и Watch 1
- •2.1 Запуск ide
- •2.2 Работа с меню
- •2.3 Создание нового проекта
- •2.4 Модификация существующего проекта
- •2.5 Открытие проекта
- •2.6 Работа с проектом
- •2.7 Завершение работы с проектом
- •2.8 Работа с отладчиком
- •Библиографический список
1.5 Компиляция, компоновка и выполнение проекта
Эти операции могут быть выполнены или через меню Build главного окна, или с помощью кнопок панели инструментов. Опишем кратко основные команды меню Build:
Compile – компиляция выбранного файла. Результаты компиляции выводятся в окно Output
Build – компоновка проекта. Компилируются все файлы, в которых произошли изменения с момента последней компоновки. После компиляции происходит сборка (link) всех объектных модулей, включая библиотечные, в результирующий исполняемый файл. Сообщения об ошибках компоновки выводятся в окно Output. Если обе фазы компоновки завершились без ошибок, то созданный исполняемый файл с расширением .ехе может быть запущен на выполнение.
Rebuild All – то же, что и Build, но компилируются все файлы проекта независимо от того, были ли в них произведены изменения.
СОВЕТ: Если при компоновке многофайлового проекта посредством команды Build вы получаете сообщения об ошибках компиляции или сборки, которые вы не можете объяснить, то мы настоятельно рекомендуем вам воспользоваться командой Rebuild All.
Execute – выполнение исполняемого файла, созданного в результате компоновки проекта.
Операции Compile, Build и Execute удобнее выполнять через соответствующие кнопки панели инструментов Build Mini Bar, которая в увеличенном виде показана на рисунке 4.
Compile(Ctrl +F7) Build(F7) Execute Program(Ctrl +F5)
Go(F5) Insert/Remove BreakPoint(F9)
Рисунок 4-Панель инструментов Build MiniBar
Чтобы пощелкать по этим кнопкам, вернемся к нашему проекту First.
Откомпилируйте проект, щелкнув на кнопке Build (F7). Диагностические сообщения компилятора и сборщика отображаются в окне вывода Output. Мы надеемся, что у вас все будет в порядке4 и последняя строка в окне вывода будет выглядеть так:
First.exe - 0 error(s), 0 warning(s)
Теперь запустите приложение на выполнение, щелкнув на кнопке Execute Program (Ctrl+F5).
Появится окно приложения First, изображенное на рисунке 5.
Рисунок 5-Консольное окно приложения First.exe
На приглашение ввести строку введите любую строку, например Hello, World!, и нажмите Enter. Программа должна вывести на экран то, что показано на рисунке 6.
Рисунок 6-Вид окна после ввода строки
Мы не будем здесь разбираться, почему программа вывела «обрезанную» строку Hello, проблема ввода-вывода строк рассматривается на лабораторной работе № 5.
Попробуйте заменить в программе оператор вывода
cout << "Welcome to C++ !" << endl;
следующим оператором:
cout << "Добро пожаловать в C++ !" << endl;
Откомпилируйте (точнее говоря, скомпонуйте) программу и запустите ее на выполнение. Результат будет настолько безобразным (рисунок 7).
Рисунок 7-Вид окна после замены в программе оператор вывода
1.6 Проблемы с вводом-выводом кириллицы
Работа в среде Visual C++ 6.0 (в режиме консольных приложений) сопряжена с определенными неудобствами, вызванными различными стандартами кодировки символов кириллицы в операционных системах MS DOS и Windows. Этот вопрос подробно рассматривается на лабораторной работе № 1. Здесь мы только напомним, что весь ввод-вывод в консольном окне идет в кодировке стандарта ASCII, а текст в исходных файлах, набираемый в текстовом редакторе Visual C++, имеет кодировку в стандарте ANSI. Поэтому для нормального вывода строки, содержащей буквы русского алфавита, эту строку надо сначала «пропустить» через функцию CharToOem(), а уже потом отправлять на консольный вывод. Аналогично, если в программе есть консольный ввод текста и этот текст в дальнейшем надо сохранять в документах (файлах) с кодировкой ANSI, то перед сохранением его надо «пропустить» через функцию OemToChar().
С учетом сказанного выше можно предложить следующую адаптацию нашей первой программы к местным (российским) условиям:
///////////////////////////////////////////////////////////
#include <iostream.h>
#include <windows.h>
char* Rus(const char* text);
int main() {
char strl[80];
// cout << "Welcome to C++ !" << endl;
cout << Rus("Добро пожаловать в C++ !") << endl;
// cout << "Enter the string:" << endl;
cout << Rus("Введите строку:") << endl;
cin >> strl;
// cout << "The value strl = " << endl;
cout << Rus("Значение строки strl = ") << endl;
cout << strl << endl;
return 0;
}
//////////////////////////////////////////////////////////
char bufRus[256];
char* Rus(const char* text) {
CharToOem(text, bufRus);
return bufRus;
}
//////////////////////////////////////////////////////////
Ничего не принимайте на веру. Немедленно, прямо сейчас (!) откомпилируйте эту программу и убедитесь, что она дает ожидаемый результат.