C++ Программирование в среде С++ Builder 5

Hello World — консольное приложение


Консольное приложение Windows похоже на программу DOS, но только внешне. Оно работает в “окне MS-DOS”, которое на самом деле в 32-битных системах Windows таковым не является. Консольное приложение — 32-битное, и запустить его в обычной 16-битной DOS невозможно. Однако, подобно примитивной программе DOS, оно ориентировано на символьный ввод-вывод, что делает консольные приложения полезными при изучении стандартных функций ввода-вывода языка С и классов стандартных потоков C++.

Чтобы создать в C++Builder консольное приложение, выполните следующие действия:

  • Выберите в главном меню File | New...; появится многостраничная диалоговая панель New Items (рис. 2.4). Этот диалог является интерфейсом так называемого хранилища объектов C++Builder (Object Repository). Помимо уже имеющихся объектов вы можете сохранять в нем свои собственные формы, диалоговые панели и прочие элементы, пригодные для повторного использования в новых программах.
  • На странице New выберите Console Wizard и нажмите кнопку ОК. Если у вас 4-я версия компилятора, в появившейся панели “консольного мастера” оставьте установки по умолчанию и нажмите кнопку Finish. Если же вы работаете с C++Builder 5, установите состояние флажков в соответствии с рис. 2.8 (внизу). C++Builder создаст проект консольного приложения и откроет окно редактора кода с файлом Project1.cpp или Unit1.cpp (Unit1.c) в зависимости от версии.
  • Рис. 2.4 Диалог New Items

  • Выберите в главном меню File | Save Project as... и сохраните файлы проекта в отдельном каталоге (папке). Назовите проект и модуль, например, HWConsole — необходимые расширения файлов C++Builder добавит автоматически. Сейчас ваш исходный файл имеет такой вид:
  • #pragma hdrstop

    #include <condefs.h>

    //--------------------------

    #pragma argsused

    int main(int argc, char* argv[ ])

    {



    return 0;

    }

  • Строчку #include <condefs.h> вставляет только C++Builder 4-й версии. Для C++Builder 5 она не нужна. В дальнейшем не обращайте на нее внимания, если она будет попадаться в листингах. Модифицируйте код файла HWConsole. срр так, чтобы он выглядел следующим образом (строчки, которые требуется ввести, выделены жирным шрифтом):

  • #pragma hdrstop

    #include <stdio.h>

    #include <conio.h>

    #include <condefs.h>

    //------------------------------------------

    #pragma argsused int main(int argc, char* argv[])

    {

    printf("Hello World from Console!\n"), printf("Press any key...");

    getch() ;

    return 0;

    }

  • Сохраните файл (File Save в главном меню) и нажмите кнопку Run на инструментальной панели (кнопка с зеленой стрелкой). C++Builder компилирует исходный файл, произведет компоновку исполняемого файла и запустит программу. На экране должно появиться окно MS-DOS, показанное на рис. 2.5. Если вы нажмете любую клавишу на клавиатуре, программа завершится и ее окно закроется.


  • Закройте проект (File | Close All в главном меню).


  • Вот и все — консольное приложение готово и работает. Для этого вам потребовалось ввести вручную пять строк кода на С. Первые две из них — директивы ^include, включающие в исходный код два заголовочных файла стандартной библиотеки. Файл stdio.h содержит прототипы общеупотребительных функций буферизованного ввода-вывода (мы здесь использовали функцию prinf() — форматируемый вывод на консоль). Файл соnio.h необходим потому, что для ожидания нажатия клавиши мы применили низкоуровневую функцию ввода символа getch() ; символ, возвращаемый функцией, мы игнорировали.

     


    Рис. 2.5 Окно программы HWConsole.exe

    Функция main () присутствует (иногда неявно) в каждой программе C/C++ и является ее входной точкой. Именно этой функции передается управление после загрузки и инициализации программы.

    Директивы препроцессора #pragma мы будем обсуждать в 4-й главе. Пока скажем, что они здесь не имеют принципиального значения и их можно было бы удалить. Но это привело бы к выдаче предупреждений при компиляции, а в некоторых случаях замедлило ее.

    Строки, начинающиеся с двойной дробной черты, содержат комментарии и не принимаются во внимание при компиляции файла.



    Написанная программа является по сути программой на языке С. В 5-й версии компилятора, если вы хотите написать “честную” программу на С и компилировать ее как такую, проблем никаких — исходный язык задается прямо в панели консольного мастера. В 4-й версии дела обстоят несколько сложнее. Дело в том, что в C++Builder 4 главный исходный файл консольного приложения должен обязательно быть срр-файлом и определять функцию main. Если же вы хотите использовать в качестве главного файла программы именно с-файл, придется пойти на некоторые ухищрения. Сделайте следующее:



  • Создайте с помощью Console Wizard новый проект.


  • Удалите из исходного файла функцию main() и добавьте директиву ^define main, чтобы файл принял такой вид:


  • #pragma hdrstop

    #include <condefs.h>



    #define main





  • Выберите в главном меню File [ New... (или нажмите кнопку New — чистый листок — на инструментальной панели); появится диалог New Items.


  • Выберите на странице New значок Unit; к проекту будет добавлен новый модуль исходного кода с именем Unit1 .cpp. (Вы можете открыть менеджер проекта, чтобы видеть все изменения в составе исходных файлов, — для этого нужно выбрать в меню View | Project Manager.) Удалите из файла все, кроме директивы hdrstop, и введите код программы:


  • //---------------------------------

    #pragma hdrstop

    #include <stdio.h>

    #include <c6nio.h>

    //----------------------------

    main ()

    {

    printf("Hello World - С main file.\n");

    getch();

    return 0;

    }

  • Сохраните файл под каким-нибудь другим именем, явно указав расширение .с в диалоге Save As...


  • Компилируйте и запустите программу, нажав на кнопку Run инструментальной панели.


  • Еще раз подчеркнем, что сказанное относится только к 4-й версии. C++Builder 5 проделывает практически то же самое, но автоматически.

    Теперь мы покажем, как вывести на экран сакраментальное “Hello World”, используя графический интерфейс системы Windows. Другими словами, мы применим технологию визуального программирования, реализованную в C++Builder.


    Содержание раздела