Windows api как запустить

Windows api как запустить

КАК подготовить и запустить проект Win API?

Часто у читателей возникает резонный вопрос: «У меня есть текст API — программы. Как мне его запустить?». В книгах по API обычно идут сплошные исходные тексты, и это очень хорошо. Но редко где объясняется, а как же запустить свою первую программу?
Поэтому, перед тем, как попросить вас что-то набрать, я хочу научить своих читателей пользоваться компилятором. Проще всего компилировать API программы в Visual C++ (часть большого пакета программ Visual Studio компании Microsoft), поэтому мы будем пользоваться именно им.
Следующий резонный вопрос — какая версия? В 1998-м году вышла самая популярная версия Visual Studio 6.0, которая, как не странно в некоторых фирмах используется до сих пор. Именно в то время программирование для Windows развивалось особенно бурно, и было подготовленно настоящее море специалистов по 6-й версии. Она проста в использовании и не содержит многих наворотов, которые включали в последующие версии, связанных с Интернет-технологиями и базами данных. Многие классные программисты, в совершенстве владеющие MFC просто не хотят переучиваться от того, к чему привыкли. Некоторые используют сразу несколько версий для совместимости.
Часто мне приходят письма читателей, а какую версию вы нам посоветуете?
Я всегда отвечаю, что версия роли не играет. Только в 6-й студии процесс создания проекта несколько отличен. В Visual Studio .NET (7.0, 7.1), а также в 2003-й и 2005-й процесс создания идентичен.
У вас может стоять любая из этих версий, и вам останется только выбрать рекомендации для вашей версии.

Итак, маленькая предыстория. Когда мы работали в Borland C++ 3.1 достаточно было создать новый файл, настучать в него текст программы и запустить. Компилятор принимал имя файла и создавал выполнимый EXE-файл. С тех пор концепция программирования несколько изменилась. Программисты для Windows обычно работают с очень большим количеством файлов, которые объединены в проект. Проект включает в себя не только исходные тексты, но и библиотеки и внешние текстовые файлы, используемые для записи промежуточных и конечных результатов, файлы типа Excell, базы данных XML, иконки, курсоры, картинки, аудиои видеофайлы и многое другое. Поэтому ошибкой было бы писать текст в редакторе типа «Блокнот», а потом пытаться открыть его с помощью VC++ да ещё и скомпиллировать. Visual С изначально понимает только проекты, причём созданные в нём самом.
Подчиняясь суровой необходимости, открываем Visual C++. На экране то, что обычно. Ничего. В лучших традициях Microsoft — никакого намёка на то, что делать дальше.

Сейчас вам предстоит определиться с тем, какая версия Visual Studio стоит на вашем компьютере. Если их несколько, имеет смыл использовать самую новую. Программисты — это люди завтрашнего дня.

Итак, если у вас стоит Visual Studio, то вам сюда. Сейчас я научу вас создавать программы на API. Эти рекомендации пригодятся вам в дальнейшем, когда вы будете создавать проекты для последующих, более сложных примеров.

Шаг 1
Запуск программы

Запустите программу Visual C++ через меню пуск. На экране появится пустое окно программы, впрочем, готовое к сотрудничеству. Беглый осмотр говорит нам о том, что в программе есть свойственная всем продуктам Microsoft панель управления для удобного редактирования текстов, а также меню. Назначение многих элементов меню и кнопок из панели управления мы будем разбирать по ходу пьессы.

Читайте также:  Как установить линукс убунту рядом с виндовс

Шаг 2
Создание проекта

В Visual Studio можно создавать удивительно много полезных штук. Создание Win API — программ — не единственное, что в ней можно делать. Чаще всего она используется для создания программ на основе библиотеки классов MFC. Но и это не обязательно. Поэтому, при создании нового проекта, надо его как следует настроить.

Выберите пункты меню File->New->Project. У вас появятся аналогичные окна New или New Project. Для версий 6.0 и 7.0 соответственно.

В списке перечислены основные типы проектов, которые можно создавать в Visual C++. Освоим пока только один из них.

Шаг 3
Определение содержания

В окне New (New Project) выберите тип «Win 32 Application» («Win32 Project»). Win 32 Application — это и есть программа на API. Сейчас от нас требуется дать имя нашему проекту — заметьте, не файлу, не будущей программе, а проекту. В большинстве случаев это имя может быть любым, но мой вам совет — давайте говорящие имена, чтобы потом не гадать, чем Project4 отличается от Project111. Пусть имя первого проекта будет First. В поле Location будет указан путь, по которому будет создана одноимённая папка для проекта First, в которой будет размещён весь наш проект. Нажмите Ok.

Это ещё не всё. Появится следующее окно, которое будет просить определить содержание проекта. В Visual C++ есть некоторые шаблоны, которые позволяют избавить разработчика от многих рутинных операций — они сами создают исходные файлы и даже прописывают в них какой-то минимальный код. Так, например, чтобы не перетруждаться, мы можем создать готовое окно с меню и строкой состояния. К шаблонам мы ещё вернёмся, а пока изучим всё с азов. В Visual C++ 6.0 надо поставить галочку на An Empty Project («Пустой проект»), так как мы будем создавать всё вручную, и нажать кнопку Finish. В 7-й версии надо перейти на закладку Application Settings («Настройки приложения») и поставить галочку Application Type — Windows Application, Application options: Empty рroject. И тоже нажать Finish («Завершить») .

Шаг 4
Пустой проект

У вас появился готовый проект, правда в нём пока ещё нет ровным счётом ничего. У нас есть проект, но пока нет программы. Остаётся набрать исходный текст и добавить его в проект. Вообще особенность пустых проектов — то, что надо добавлять в него все файлы вручную, несмотря на то, исходники это, библиотеки или ресурсы.
Вот такой вид будут иметь пустые проекты:

Теперь познакомимся поближе с редактором. Как и в любой программе Windows, в верхней части окна расположены меню и панель инструментов. Она стандартная для всех приложений Microsoft, и я думаю, со многими кнопками (такими, как Сохранить, Копировать, Вырезать, Вставить) вы уже знакомы.
В нижней части программы, как и в Borland C++ окно комментариев компилятора. В нём будет вестись журнал компиляции, компоновки и построения, отображаться статус проекта, выдаваться предупреждения (warnings), ошибки (errors) и комменатрии. Чтобы оно не мешало, его можно закрывать, когда вы работаете с кодом.
В левой части окно навигатора, в котором есть три вкладки: Files (Файлы), ClassView (Вид классов) и Resource (Ресурсы).
Вкладка FileView — файлы, которые входят в проект. Они условно разделены на три папочки: Source (исходники), Headers (Библиотеки, заголовочные файлы), Resources (ресурсы — картинки, иконки, курсоры). В больших проектах количество файлов и папок может доходить до тысячи, поэтому очень удобно иметь весь список файлов перед собой, чтобы быстро получить доступ к нужному.
ClassView — диаграмма классов, используемых в программе. Поскольку язык API процедурный, нам она пока не понадобится.
ResourceView — содержит наши ресурсы. Они описаны в файле ресурсов. Этот файл носит вспомогательный характер, но он очень важен. В нём описаны все ресурсы приложения — диалоговые окна, панели инстрментов, меню, картинки, иконки, курсоры и многое другое. В MFC этот файл генерируется автоматически, нам придётся создавать его вручную. Для этого придётся овладеть нехитрым языком описания ресурсов. Обычно файл ресурсов имеет расширение: *.RC

Читайте также:  Sing out windows перевод
Шаг 5
Включение нового файла

Пока что проект пуст и не содержит никаких файлов. Чтобы вы могли набирать исходные тексты из моей книги и других книг, вы должны освоить процедуру создания пустого проекта и включения в него файлов, описанные в этой главе. Рассмотрим методику включения файла исходника для обоих версий.

Visual C++ 6.0

Выберем File->New. Появившееся окно похоже на то, что мы использовали для создания проекта. Но теперь в нём надо указать тип создаваемого файла С++ Source File — исходный текст на языке С++. Введём его имя в поле Name. Оно будет тоже First, как и имя проекта. Расширение срр указывать не обязательно — оно будет добавлено автоматически. Нажмите ОК. На экране появился открытый файл First.cpp, в который уже можно вводить исходный текст. Но то, что мы его создали вовсе не означает, что компилятор его «увидит». Его, оказывается, надо ещё включить в проект! Ладно, выбираем пункт меню Project->Add to Project. В окне «Открыть» укажем наш файл.

Visual C++ 7.0

Выберем File->New->File. Появится окно, представленное ниже. Вот, как это будет выглядеть:
Выберем тип C++ Source File и нажмём Open. По умолчанию создаётся файл Source1.cpp. Сохраним его в папке проекта как First.cpp. Затем добавим в проект. Project->Add Existing Item. В окне укажем имя нашего файла. First.cpp.

Вот теперь всё готово для ввода программы. Если вы выберите в навигаторе вкладку Files и раскроете папочку Source, то увидите, что в ней появился наш первый исходный файл First.cpp!

Примечание. Следите, чтобы все исходные файлы хранились в папке проекта. При большом количестве файлов удобно сортировать их по каталогам. Но всё равно, все каталоги должны храниться в одной общей папке — папке проекта.

Шаг 7
Ввод исходного текста программы

Вот теперь в файл можно ввести какой-то текст. Итак, первая программа!
Самая первая программка будет такой:

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)
<
MessageBox(0, «Привет, Win32 API», «Первое окно. «, MB_ICONINFORMATION|MB_OK);

Не бойтесь, если вы ещё не знаете языка API. мы здесь и собрались для его изучения. Пока мы просто учимся работать с компилятором. Введите этот текст в файл First.cpp и сохранить его. Запустить программу на выполнение можно кнопкой F5. Компилятор переидёт в режим отладки нашего проекта. Вас спросят, хотите ли вы построить выполнимый файл. Вы ответите Yes, и через какое-то время, если всё правильно набрали, увидите свою программу. Так будут запускаться на исполнение все наши программы. После запуска build в папке проекта появится вложенная папка Debug, в которую будет помещён созданный нами файл First.exe.

Эта программка не содержит главного окна, которое в большинстве своём считается обязательным элементов для всех Windows-программ, если конечно они не консольные, однако это уже полноценная программа для Windows, о чём мы заявили, когда включили библиотеку windows.h. Далее идёт тело функции WinMain().

WinMain() — главная функция любой API программы — точка входа в неё. Нечто подобное представляла собой и функция main(), когда мы работали в DOS.
Как вы уже поняли, программа выводит на экран информационное окно, с которым вы конечно уже нераз сталкивались, когда работали в Windows в качестве пользователя.

Как видите, всё предельно просто. Обыкновенный процедурный язык СИ. Единственное, что сейчас для нас будет представлять интерес — это функция вывода окна информационного сообщения. Обычно такие сообщения бывают четырех видов: информационые (буковка i на синем фоне), вопросительные (знак вопроса), предупредительные (восклицательный знак), сообщения об ошибке (знак «Стоп»). API функция MessageBox как раз и занимается тем, что формирует такое окно, наполняя его содержимым. Она предназначена для создания информационных сообщений Windows. Функция простая, но чрезывачайно важная, так как эти окна используются почти в каждой программе. Кроме того, их очень удобно выводить для контроля промежуточных результатов работы — значений переменных, состояния флагов.

Итак, рассмотрим функцию по порядку. Первый аргумент — идентификатор родительского окна. У нас нет главного окна программы в принципе, поэтому он равен 0. Второй аргумент — строка текста, которая будет выведена непосредственно в окне. Третий — заголовок этого окна.
Чтобы изменить стиль окошка, измените 4-й аргумент. Он определяет тип окна в зависимости от типа сообщений:

  • информационных (MB_ICONINFORMATION)
  • вопросительных (MB_ICONQUESTION)
  • сообщений об ошибках (MB_ICONSTOP)
  • предупредительных (MB_ICONEXCLAMATION)

Число кнопок также может варьироваться:

  • только кнопка «ОК» (MB_OK)
  • «Отмена» (MB_CANCEL)
  • «Пропустить» (MB_IGNORE)
  • «ОК и Отмена» (MB_OKCANCEL)

Окно, создаваемое MessageBox — стандартное окно Windows. Также к стандартным окнам относятся такие известные вам диалоги, как: окно выбора папки, окно открытия и сохранения файлов, окно выбора цвета, шрифта и окно настройки принтера. Они нам очень помогают, но к сожалению никогда не заменят главного окна программы, которое мы будем создавать сами.
Это была разминка с целью научить вас создавать проекты для Win32 API. С каждой новой главой, мы будем исследовать всё более сложные и всё более интересные вещи.

Задание:
Измените информационную иконку на вопросительную и придумайте вопрос, который задаёт программа (например «Вы действительно хотите удалить файл?»). В строке заголовка окна введите имя программы (в данном случае «First»). Пусть в новом окне теперь будут две кнопки: «ОК и Отмена». Запустите программу на выполнение.

Что будет дальше?
Вы наверное уже достаточно хорошо освоили работу с функцией MesaageBox и хотите двигаться дальше. Спешу вас обрадовать, что в следующей главе вы уже создадим своё первое окно!

Читайте также:  Lsi megaraid storage manager linux
Оцените статью
Листинг №1 «Первая программа«