Программирование >>  Элементы языков с и с++ 

1 ... 3 4 5 [ 6 ] 7 8 9 ... 200


( Примечание )

Мы создали заготовку, построенную по шаблону Win32 Console Application. Но существует и шаблон CLR Console Application, однако мы его не выбрали для построения заготовки. Почему? Этот шаблон предполагает подключение к тексту программы специального пространства System, содержащего классы, которые задают ссылочные типы данных и функции работы с ними. Мы этого аппарата еще не касались и столкнемся с ним в главе 7. Там нам и понадобится другой тип консольного приложения, а именно CLR Console Application. Подключение шаблона CLR Console Application к созданию приложения происходит там же, где и подключение к шаблону Win32 Console Application.

Создание простейшего консольного приложения

Запишем в теле функции tmain () следующие две строки:

printf( Hello!\п ); getchO;

□ stdafx.cpp- подключает специальный файл Vs9VimTestCpp.pch для компиляции приложения;

□ stdafx.h- подключает специальные файлы для компиляции приложения. Вот его содержимое:

#pragma once / / команды для компиляции: #include targetver.h #include <stdio.h> #include <tchar.h>

□ targetver.h- позволяет использовать специфические свойства Windows Vista. Вот содержимое этого файла:

#pragma once команды для компиляции:

#ifndef WIN32 WINNT Allow use of features

specific to Windows Vista or later.

#define WIN32 WINNT 0x0600 Change this to the

appropriate value to target other versions of Windows.

#endif

□ ReadMe.txt- файл, описывающий некоторые из созданных шаблоном консольного приложения файлов проекта. Посмотреть содержимое файла можно через его контекстное меню, если выполнить в нем команду Open.



Это код нашего первого приложения. Он должен вывести на экран текст Hello! и задержать изображение, чтобы оно не исчезло, пока мы рассматриваем, что там появилось на экране. Вывод на экран выполняет оператор printf ( Hello! \n );, а задержку изображения - оператор getch ();.

Заметим, что оператором в C/C++ называют некоторое выражение C/C++, оканчивающееся точкой с запятой. В первый оператор в.\одит функция printf( Hello!\n ), а во второй- функция getchO (эта функция из C/C++ введена вместо ранее использовавшейся функции getch о ).

В итоге наше консольное приложение будет иметь вид, представленный на рис. 1.13.

ш 1 - VhusI 2008 Ехргеи Edition

Ня 1Л View Build Qebug lools Window Help

j3 -J # -J D bug - Win32

Solution Explorer-S... Ц X 1л:рр* startPage

I (Global Scope) v VwmainO

:Д Solution T(l project)

o3 > Header Files stdafx.h targetver.h J Resource Files ,T> Source FHes l.cpp stdafx.cpp 13 ReadMe.txt

B l.cpp : refir.es the entry poirt for the console eppiic&ti

Slnclude stdafx.h

в int tioain (J

JSdu...

printI( Hello!\n ); getch();

0(Л*)оп Window

No definition selected

laiibiMu пед Hiiu.

II no вкладкам.

Code Definition Window j3-,;; ercw4<;i 3 o.jtt>j(

Рис. 1.13. Вид консольного приложения до компиляции

Чтобы приложение заработало, его надо откомпилировать, т. е. перевести написанное на языке С в машинные коды. Для этого запускается программа-компилятор. Запускается она либо нажатием клавиши <F7>, либо выполнением опции главного меню BuildjSolution. Если мы проделаем подобные действия, то получим картинку, показанную на рис. 1.14.



11 .Vitual С ШЯ Ехргс! Edition

Fte Ed* View Project Build Debug Tools Window Help

J- .4 J -J V D bug

Sokto) Explorer-1 9 X iipp start Pas*

J

Jl Solutionl(lptoiect)

- .:;3i

- , Header Flies

jj stdafx.h j3 targetver.h J Resource Files

- Source Files

IcPP

stdafx.cpp (Ti ReadMe.txt

П0М*ЛНО. OI KdKOH

опе>АЦ iwei вывод в ото Oulput

VwmanO

П I.cpp : Defines tbe entiry point lor Che console application.

Sinclude stdafx.h

G int cioain 0 i <

ptlntf CHelloiin ); eetch(),-

Pe >улылг двойного щелчк.! Нл >ioii сгроке с


g*tch: id ncifl*r not

ИЛпс visu&l срр Z006 Applicatlons\pro3*ctX\X\l\l.cpp<10) (ound

Build lo uas saved t - tt: d: >ДЗ Vi;m 1 CPP гДОВ ЛI.plggl;nУГl;тclDeЬuqBuldlo<,hti. 1-1 error(s). 0 varnlngtsi

Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped

JC Jete. FuLur, ..ndov. ]*ai :.-ill-><?wiei l.jrjOutpc* Окновкл.\м1 Oiitpiil

Рис. 1.14. Результат 1-й компиляции приложения

Картинка показывает, что наша компиляция не удалась: в окне вывода высветились сообщения об ошибках. В частности, мы видим сообщение: error С3861: getch: identifier not found . Это означает, что компилятор не узнает функцию getch.

А почему же компилятор узнал функцию printfO? Если посмотреть по справочной системе, то увидим, что местона.\ождение этой функции на.хо-дится в файле stdio.ii. Но если вспомнить, какие файлы автоматически в.ходят в проект при его построении, то увидим, что файл stdafx.h как раз и подключает к программе файл stdio.h, вот поэтому-то компилятор ведет себя спокойно по отношению к функции printf о.

Если кнопкой мыши дважды щелкнуть на каждой строке с информацией об ошибке, то в поле функции tmain о, т. е. в нашей программе в поле подшивки (вертикальная полоса слева от текста) отметится та строка, в которой эта ошибка обнаружена. Этот процесс также показан на рис. 1.14.



1 ... 3 4 5 [ 6 ] 7 8 9 ... 200

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика