Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Интегрированная среда.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.76 Mб
Скачать

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;

}

//////////////////////////////////////////////////////////

Ничего не принимайте на веру. Немедленно, прямо сейчас (!) откомпилируйте эту программу и убедитесь, что она дает ожидаемый результат.