Pull to refresh

Comments 16

Разработка на русском языке? Сразу в топку, это ж вырвиглаз уровня 1С. Должно быть нативным по бекграунду, а не вот это вот.

Спасибо за комментарий

Создаём проект консольное приложение в Visual Studio.

Для исчезновения консоли с отображения на экране после запуска проекта SFML вносим дополнительные настройки

Создаём точку входа: mainCRTStartup

копируем файл openal32.dll из папки SFML-2.6.1\bin  в папку Windows\System32

С такими инструкциями и враги не нужны

Спасибо за комментарий

Давайте я немного поясню,

  1. Можно было сразу создать не консольное приложение ("пустой проект" с вашего же скриншота), тогда не пришлось бы переключать /SUBSYSTEM:WINDOWS

  2. Да, в этом случае точкой входа была бы функция WinMain() а не main(), но вы всё равно принудительно выставляете mainCRTStartup, так что ни чего бы не изменилось.

  3. mainCRTStartup нужен был бы для кроссплатформенного приложения, которое должно начинаться именно с main(), но проект для VisualStudio - то есть, изначально не переносимый (был бы переносимый - был бы на CMake, к примеру)

  4. Копировать любые библиотеки пуками в Windows\System32 нельзя, во-первых, в современных Windows это должна быть другая папка Windows\WinSxS или Windows\WOW, не помню точно, а Windows под рукой в данный момент проверить нет. Во-вторых, это потенциально может сломать другое приложение, которое случайно "найдёт" вашу версию openal32.dll вместо нужной этому приложению. Читать что такое dll hell.

  5. Если SFML собирается как static, то где в настройках проекта переключение vc runtime на static, что бы не таскать за собой vcredist?

Из всего этого можно сделать вывод, что у вам нужно хорошенько подучить Visual Studio, тогда статьи будут корректными и без "ошибок новичка" ;)

Положить либы в lib, хидеры в include, мне кажется - это слишком очевидно для статьи на Хабре.

Спасибо за комментарий

А почему нельзя просто:

vcpkg --triplet=x64-windows-static install sfml

Лучше CMake (presets) + VCPKG + любая IDE с поддержкой CMake

Не всегда корректная установка библиотеки, приходится дорабатывать ручками.

Что именно некорректно? Если нашли проблему, то можно завести тикет в майкрософтовском репозитории vcpkg. Но для вашего случая там делаются проверки на работоспособность сборки.

Мне кажется, что тут скорее всего вы неправильно библиотеки в проект подключаете :)

Не у всех и не всегда получается, но спасибо за комментарий !

Да не за что. Но вы даёте странные утверждения по несколько раз и не приводите конкретные примеры. Обычно такое бывает, когда люди не владеют теми системами сборки, которыми пользуются. Вот я и повторюсь - vcpkg собирает всё что нужно в корректно настроенном окружении. Если не у всех работает, то с очень большой вероятностью это локальная проблема, а не проблема vcpkg

Актуальна ли в настоящее время такая настройка проекта? Почему не используется тот же CMake? Ведь при разработке часто требуется больше библиотек (Box2D, ImGui, LDtk loader или парсер для tiled, ecs framework и т.д.), и настройка всего этого через проект Visual Studio может превратиться в настоящий ад. Кроме того, здесь существует проблема с кроссплатформенностью как для игрока, так и для разработчика.

CMake - это лучшее что есть на сегодня в данном случае. Но почему не рассматривать и другие варианты, которые используя шаблоны упрощают работу для новичков?

Пяток строчек на CMake и готово, а не вот это всё)))

Sign up to leave a comment.

Articles