Include graphics h как подключить visual studio

Обновлено: 07.07.2024

print
Инициализация и закрытие графики

int initwindow(int width, int height);
int initwindow(int width, int height, const char* title, int left, int top);

Инициализирует графическую систему (новая).
Создается окно указанного размера. Возвращается номер окна. Можно также задать заголовок окна, координаты.

Завершает работу с графической системой.
Графическое окно закрывается. По умолчанию закрываются все окна, при вызове с аргументом CURRENT_WINDOW - только текущее окно.

Очищает графический экран. Все установки сбрасываются в начальное состояние.

int getcurrentwindow(void);
void setcurrentwindow( int window );

Позволяют выбрать текущее окно и узнать номер текущего графического окна.


Устаревшие функции, для совместимости со старыми программами

void initgraph(int *graphdriver, int *graphmode, char *pathtodriver);

Инициализирует графическую систему.
Для graphdriver можно указать значения DETECT, CGA, EGA, VGA и др. Для graphmode - CGAC0, CGAHI, EGALO, EGAHI, VGALO, VGAMED, VGAHI, VGAMAX и т.д. Отличия только в размерах создаваемого окна, они устанавливаются в соответствии с возможностям старых видеокарт (VGA/VGAHI - 640x480, VGA/VGALO - 640x200, VGA/VGAMAX - максимально возможный размер). В режиме DETECT - используется VGA/VGAHI. Последний параметр не используется.
Вызов:

Определяет путем проверки аппаратуры - какой графический драйвер и режим использовать.

Восстанавливает режим монитора таким, каким он был до вызова initgraph (не реализована).

Переводит систему в графический режим и очищает экран (не реализована).

Возвращает максимальный номер режима для текущего драйвера.

Возвращает указатель на строку, содержащую имя заданного графического режима.

void getmoderange(int graphdriver, int *lomode, int *himode);

Получает диапазон режимов для заданного графического драйвера (не поддерживается).

Сбрасывает все графические параметры в их значения по умолчанию.

Устанавливает дополнительный драйвер устройства в таблицу драйверов устройства BGI (не поддерживается).

Связывает загруженный пользователем или встроенный в систему драйвер графической системы с самой графической системой (не поддерживается).

Пссс, парень! Не хочешь попробовать немного SFML? Убойная штука. Достаточно самой малости и с её помощью ты сможешь воплотить в жизнь то, о чем раньше мог только мечтать. Тебе понравится, гарантирую. Тем более тебе, как новичку, первая порция бесплатно, я угощаю. Ну что, договорились? Тогда по рукам.

Что такое SFML?

С её помощью можно легко и непринужденно создавать любую 2D-графику: начиная от простейших одиночных геометрических фигур (типа треугольника) и заканчивая полноценными играми-платформерами.

Примечание: Все примеры этого урока были сделаны мной в ОС Windows 7 с использованием IDE MS Visual Studio 2017 Community Edition и библиотеки SFML 2.5.1.

Ну что, парень, ты готов? Да вижу, что готов. Погнали!

Установка библиотеки SFML в Visual Studio


Как уже говорилось ранее, в качестве IDE я буду использовать Visual Studio 2017, поэтому скачиваем соответствующую версию SFML. Вы также можете заметить наличие готового пакета для эстетов Code Blocks. Помимо этого, в глаза бросаются варианты библиотеки для других версий Visual Studio. Сразу дам совет — не пытайтесь лепить Франкенштейна, используя неподходящий билд SFML, иначе вы рискуете получить вагон и маленькую тележку всякого рода проблем на свою голову.


Теперь скачанный архив нужно распаковать. У себя я выбрал следующий путь — C:\Soft\SFML-2.5.1-windows-vc15-32-bit .

Далее создадим пустой проект и подключим к нему библиотеку SFML. Для этого запустите Visual Studio и выберите "Файл" > "Создать" > "Проект…" , или можно воспользоваться сочетанием горячих клавиш Ctrl+Shift+N . Задайте имя и расположение проекта так, как показано на следующем скриншоте:


Теперь, когда у нас есть проект, нужно добавить в него файл, который будет содержать исходный код нашей программы. Для этого в окне «Обозреватель решений» клацните ПКМ по строке "Исходные файлы" > "Добавить" > "Создать элемент…" :


В поле «Имя» укажите main.cpp :


Отлично! Следующим шагом будет подключение библиотеки SFML к нашему проекту. Для этого нужно:

подключить каталог заголовочных и исходных файлов SFML ( /include );

подключить каталог библиотечных файлов SFML ( /lib );

подключить библиотечные файлы SFML в качестве дополнительных зависимостей.

Переходим в "Проект" > "Свойства: SFML_Tutorial…" :


В верхнем левом углу страницы свойств SFML_Tutorial есть выпадающий список возле пункта "Конфигурация" , установите его значение как "Все конфигурации" . Также проверьте, что в параметре "Платформа" установлено значение "Win32" . Затем в левой части окна найдите и выберите раздел "Свойства конфигурации" > "С/С++" > "Общие" . Обратите внимание на правую часть, нас интересует параметр "Дополнительные каталоги включаемых файлов" . Выберите его и нажмите <Изменить…> . Перед вами появится новое окно, в котором нужно указать путь к заголовочным файлам библиотеки SFML. Обычно они располагаются в папке include. У меня этот путь выглядит как C:\Soft\SFML-2.5.1-windows-vc15-32-bit\SFML-2.5.1\include .


Похожим образом подключаются и файлы библиотек. Всё, что нужно сделать — это выбрать в левой части "Свойства конфигурации" > "Компоновщик" > "Общие" . Затем "Дополнительные каталоги библиотек" и <Изменить…> . В открывшемся окне нужно будет указать путь к библиотечным файлам SFML, у меня это C:\Soft\SFML-2.5.1-windows-vc15-32-bit\SFML-2.5.1\lib .


Осталось подключить несколько файлов в виде дополнительных зависимостей для «Компоновщика». Для этого нужно переключить тип конфигурации на Debug , а затем в левой части окна выбрать "Свойства конфигурации" > "Компоновщик" > "Ввод" . Переведите взгляд на правую часть, где нужно найти строку "Дополнительные зависимости" и нажмите <Изменить…> . В появившемся окне впишите имена следующих 4 файлов:

sfml-graphics-d.lib
sfml-window-d.lib
sfml-audio-d.lib
sfml-system-d.lib

Должно получиться следующее:

Первые шаги и первые…

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

// Объект, который, собственно, является главным окном приложения RenderWindow window ( VideoMode ( 200 , 200 ) , "SFML Works!" ) ; // Главный цикл приложения. Выполняется, пока открыто окно // Пользователь нажал на «крестик» и хочет закрыть окно?

Я вижу, как ваша рука уже потянулась к кнопке «Скомпилировать и запустить проект», но не торопитесь, давайте сначала разберем данный код:

Строка №3: Подключаем пространство имен sf .

Строка №8: Создаем объект window класса RenderWindow. Данный объект — это наше окно, в котором будет отображаться 2D-графика. Первый параметр VideoMode(200, 200) задает видеоразрешение окна (ширину и высоту). Второй параметр "SFML Works!" — это заголовок окна.

В строке №23 мы вызываем метод display(), который отвечает за отрисовку нашего окна.

Вот теперь можно перейти к компиляции и первому запуску программы. Для этого нажмите в Visual Studio "Отладка" > "Запуск без отладки" (или Ctrl+F5 ). Ииии, вот и она! Ваша первая… ЧТО…. ОШИБКА…. WTF….


А проблема в том, что исполняемый файл нашей программы не может найти *.dll-файлы, в которых хранятся используемые нашим приложением функции. Решение очень простое — нужно скопировать все файлы (11 штук) из папки C:\Soft\SFML-2.5.1-windows-vc15-32-bit\SFML-2.5.1\bin\ в папку C:\dev\SFML_Tutorial\Debug\ , в которой хранится наш исполняемый файл SFML_Tutorial.exe:


Попробуйте теперь скомпилировать и запустить проект. В результате должно получиться следующее:


От переводчика: данная статья является первой в цикле переводов официального руководства по библиотеке SFML. Данный цикл статей ставит своей целью предоставить людям, не знающим язык оригинала, возможность ознакомится с этой библиотекой. SFML — это простая и кроссплатформенная мультимедиа библиотека. SFML обеспечивает простой интерфейс для разработки игр и прочих мультимедийных приложений. Оригинальную статью можно найти тут. Начнем.

Библиотека SFML предоставляет простой интерфейс для различных компонентов вашего компьютера, чтобы облегчить разработку игр и мультимедийных приложений. Она состоит из пяти модулей: system, window, graphics, audio и network.

Используя SFML, ваше приложение может быть скомпилировано и запущено на наиболее распространенных платформах: Windows, Linux, Mac OS X(планируется поддержка Android и IOS).

Предварительно скомпилированные SDK для вашей ОС доступны на странице загрузки.

1. Приступая к работе

  1. Рисование 2D объектов
  2. Спрайты и текстуры
  3. Текст и шрифты
  4. Формы
  5. Проектирование ваших собственных объектов с помощью массивов вершин
  6. Позиция, вращение, масштаб: преобразование объектов
  7. Добавление специальных эффектов с шейдерами
  8. Контроль 2D камеры и вида
  1. Проигрывание звуков и музыки
  2. Запись аудио
  3. Пользовательские потоки аудио
  4. Спатиализация: звуки в 3D

Вступление

Эта статья — первая, которую вам следует прочитать, если вы используете среду разработки Visual Studio (Visual C++ compiler). В ней будет рассказано, как настроить ваш проект.

Установка SFML

Для начала вам необходимо скачать SFML SDK со страницы загрузки.

Скаченный вами пакет должен соответствовать вашей версии Visual C++. Например, библиотека, скомпилированная с помощью VC++ 10 (Visual Studio 2010) не будет совместима с VC++ 12 (Visual Studio 2013). Если вы не найдете на странице загрузки пакет SFML, скомпилированный для вашей версии Visual C++, вам придется собрать SFML самостоятельно.

Далее вы должны распаковать архив с SFML в любую удобную для вас директорию. Копировать заголовочные файлы и библиотеки в вашу установку Visual Studio не рекомендуется. Лучше держать библиотеки в отдельном месте, особенно если вы намереваетесь использовать несколько версий одной библиотеки или несколько компиляторов.

Создание и конфигурирование проекта SFML

Первое, что вам необходимо сделать — это выбрать тип создаваемого проекта: вы должны выбрать «Win32 application». Мастер предложит вам несколько опций для настройки проекта: выберите «Console application» в том случае, если вам нужна консоль, либо «Windows application» в обратном случае. Выберите «Empty project», если вам не нужен автоматически сгенерированный код.

Создайте файл main.cpp и добавьте его в проект. Этим вы примените настройки C++ (в противном случае Visual Studio не будет знать, какой язык мы будем использовать для данного проекта). Содержимое файла main.cpp будет приведено ниже.

Теперь вам необходимо указать компилятору, где искать заголовочные файлы (файлы с расширением .hpp) и компоновщику, где искать библиотеки SFML (файлы с расширением .lib).

Добавьте в свойства проекта следующее:

  • Путь до заголовочных файлов SFML (<путь-к-установке-SFML>/include) в C/C++ » General » Additional Include Directories
  • Путь до библиотек SFML (<путь-к-установке-SFML>/lib) в Linker » General » Additional Library Directories


Следующий шаг — компоновка вашего приложения с библиотеками SFML (файлы с расширением .lib). SFML состоит из пяти модулей (system, window, graphics, network и audio) и библиотек для каждого из них. Библиотеки должны быть добавлены в свойства проекта в Linker » Input » Additional Dependencies. Добавьте те библиотеки SFML, в которых вы нуждаетесь, например «sfml-graphics.lib», «sfml-window.lib» и «sfml-system.lib».

Важно указать библиотеки, соответствующие конфигурации: «sfml-xxx-d.lib» для Debug и «sfml-xxx.lib» для Release, иначе могут возникнуть ошибки.

Настройки, приведенные выше, позволят вам скомпоновать ваш проект с динамической версией SFML, для которой требуются DLL файлы. Если вы хотите напрямую интегрировать SFML в ваш исполняемый файл, а не использовать компоновку с динамической библиотекой, вы должны скомпоновать статическую версию библиотеки. Статические библиотеки SFML имеют суффикс "-s": «sfml-xxx-s-d.lib» для конфигурации Debug и «sfml-xxx-s.lib» для Release.

Также вам необходимо определить макрос SFML_STATIC в опциях препроцессора вашего проекта.


Начиная с SFML 2.2 при статической компоновке вам также необходимо скомпоновать все зависимости SFML. Это означает, что если, к примеру, вы скомпонуете sfml-window-s.lib или sfml-window-s-d.lib, вам также придется скомпоновать opengl32.lib, winmm.lib и gdi32.lib. Некоторые из этих библиотек, возможно, уже перечислены в разделе «Inherited values», но добавление их не должно вызвать каких либо проблем.

  • sfml-window-s.lib
  • sfml-system-s.lib
  • opengl32.lib
  • freetype.lib
  • jpeg.lib
  • sfml-system-s.lib
  • opengl32.lib
  • winmm.lib
  • gdi32.lib
  • sfml-system-s.lib
  • openal32.lib
  • flac.lib
  • vorbisenc.lib
  • vorbisfile.lib
  • vorbis.lib
  • ogg.lib
  • sfml-system-s.lib
  • ws2_32.lib
  • winmm.lib

Если вы немного запутались, не волнуйтесь, для начинающего совершенно нормально быть перегруженным всей этой информацией о статическом связывании.Если у вас что-то не получится с первого раза, вы можете попробовать еще раз имея в виду все сказанное выше. Если у вас все же возникнут трудности со статическим связыванием, вы можете попробовать поискать решение в разделе FAQ или на форуме.

Если вы не знаете чем отличаются динамические (также называемые общими) и статические библиотеки и какой тип библиотек использовать, вы можете найти больше информации в интернете. На данную тему есть множество хороших статей/блогов/постов.

Ваш проект готов, давайте напишем немного кода, что бы проверить, что все работает правильно. Поместите следующий код в файл main.cpp:


Если при создании проекта вы выбрали опцию «Windows application», то точкой входа в вашу программу должна быть функция «WinMain» вместо «main». Так как это специфика Windows, ваш код не будет компилироваться на Linux или Mac OS X. SFML предоставляет способ сохранить стандартной точкой входа «main» в том случае, если вы скомпонуете свой проект с модулем sfml-main («sfml-main-d.lib» для Debug, «sfml-main.lib» для Release) таким же способом, которым вы скомпоновали sfml-graphics, sfml-window и sfml-system.

Теперь скомпилируйте проект, и, если вы скомпоновали вашу программу с динамической версией SFML, не забудьте скопировать файлы с расширением .DLL (они расположены в <путь-к-установке-SFML>/bin) в директорию, в которой расположен исполняемый файл вашей программы. Запустите программу, и, если все было сделано правильно, вы должны увидеть это:


Если вы используете модуль sfml-audio (независимо от того, статическую или динамическую его версию), вы также должны скопировать внешнюю dll библиотеку OpenAL32.dll. Этот файл также может быть найден в директории <путь-к-установке-SFML>/bin.

Для использования библиотеки необходимо установить компонент набора инструментов Windows SDK 7.1:

Удалите компоненты распространяемого пакета Microsoft Visual C++ 2010 в Панели Установка и удаление программ в Windows XP / Программы и компоненты в Windows 7/8


Скачайте Windows SDK 7.1 по ссылке Windows SDK 7.1 (веб установщик)

Запустите скачанный установщик. Примите лицензионное соглашение. Найдите на своём компьютере папку MicrosoftSDKs\Windows

Обычно она находится в папке Program Files или Program Files (x86) в зависимости от вашей архитектуры (Для x86 1 вариант, для x64 второй вариант), на диске С. Установите в эту папку пакет.

Например: C:\Program Files\Microsoft SDKs\Windows\v7.1

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


Найдите папку IDE:

C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE

В зависимости от вашей архитектуры.

Скопируйте файлы из папки IDE в папку bin с заменой если потребуется.

C:\Program Files\Microsoft Visual Studio 10.0\VC\bin

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin

На этом установка Windows SDK 7.1 закончена. Перезагрузите компьютер.

Настройка проекта для использования Windows SDK 7.1

Следующие действия необходимо выполнять каждый раз при создании нового проекта который будет использовать библиотеку graphics.

Скачайте требуемые файлы по этой ссылке и следуйте инструкциям в комплекте:

После этого нажмите правой кнопкой мыши на вашем проекте в панели Обозревателя решений выберите пункт Свойства. Откроется окно свойств проекта. Выберите набор инструментов Windows SDK 7.1

Читайте также: