|
Программирование >> Элементы языков с и с++
( Примечание ) Мы создали заготовку, построенную по шаблону 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.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |