Как собрать чит-ресурсы Visual Studio 2019

Обновлено: 21.11.2024

Компиляция отдельных игровых проектов с помощью Visual Studio для Windows или Xcode для Mac.

Выберите операционную систему:

Unreal Engine 4 (UE4) использует собственный метод сборки с помощью UnrealBuildTool, который обрабатывает все сложные аспекты компиляции проекта и связывания его с движком. Этот процесс происходит прозрачно, позволяя вам просто собрать проект с помощью стандартного рабочего процесса сборки Visual Studio.

UnrealBuildTool использует файлы .Build.cs и .Target.cs для сборки игрового проекта. Они автоматически генерируются при создании проекта с использованием шаблона C++ или при использовании мастера классов CPP для добавления кода в проект, созданный на основе шаблона "Только схемы".

Конфигурация сборки

У проектов Unreal есть несколько целей (редактор, клиент, игра и сервер), описанных в файлах *.target.cs, каждая из которых может иметь различные конфигурации. В Visual Studio это проявляется в виде файла Visual Studio *.vcxproj с разными конфигурациями для каждой цели. Конфигурации решения называются [Конфигурация][Тип цели] (например, «Редактор разработки» для цели редактора по умолчанию и «Разработка» для цели автономной игры по умолчанию). Используемая вами конфигурация будет определяться целями сборки, которую вы хотите создать.

Каждая конфигурация сборки содержит два ключевых слова, и первое ключевое слово указывает на состояние движка и вашего игрового проекта. Например, если вы компилируете с использованием конфигурации отладки, вы сможете отлаживать код своей игры. Второе ключевое слово указывает цель, для которой вы строите. Например, если вы хотите открыть проект в Unreal, вам нужно выполнить сборку с целевым ключевым словом Editor.

Конфигурация сборки — состояние

Отладка

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

Отладка игры

Эта конфигурация создает оптимизированный движок, но оставляет код игры поддающимся отладке. Эта конфигурация идеальна для отладки только игровых модулей.

Разработка

Эта конфигурация обеспечивает все оптимизации движка и игрового кода, кроме самых трудоемких, что делает ее идеальной для разработки и повышения производительности. Unreal Editor по умолчанию использует конфигурацию разработки. Компиляция вашего проекта с использованием конфигурации разработки позволяет вам увидеть изменения кода, внесенные в ваш проект, отраженные в редакторе.

Доставка

Это конфигурация для оптимальной производительности и доставки вашей игры. Эта конфигурация исключает консольные команды, статистику и инструменты профилирования.

Проверить

Эта конфигурация является конфигурацией доставки, но с включенными некоторыми консольными командами, статистикой и инструментами профилирования.

Конфигурация сборки — цель

[пусто]

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

Редактор

Чтобы иметь возможность открыть проект в Unreal Editor и увидеть все отраженные изменения кода, проект должен быть создан в конфигурации редактора.

Клиент

Если вы работаете над многопользовательским проектом, используя сетевые функции UE4, эта цель определяет указанный проект как клиент в модели клиент-сервер UE4 для многопользовательских игр. При наличии файла Client.Target.cs конфигурации сборки клиента будут действительными.

Сервер

Если вы работаете над многопользовательским проектом, используя сетевые функции UE4, эта цель определяет указанный проект как сервер в модели клиент-сервер UE4 для многопользовательских игр. При наличии файла Server.Target.cs конфигурации сборки сервера будут действительными.

Создание с помощью Visual Studio

Настройка конфигурации сборки

Конфигурацию сборки можно настроить на панели инструментов Visual Studio.

Проект — Меню конфигурации

Настройка платформы решения

Платформу решения можно задать на панели инструментов Visual Studio.

UE4 в настоящее время поддерживает следующие платформы:

32-разрядная версия Windows

64-разрядная версия Windows

При работе с Unreal Engine 4 вы обычно используете платформу Win64. Это единственный параметр, включенный по умолчанию при создании файлов проекта; на странице "Файлы проекта для IDE" есть инструкции по созданию файлов проекта для дополнительных платформ.

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

Перед продолжением убедитесь, что у вас установлена ​​Visual Studio 2015 или более поздней версии для рабочего стола Windows. Если вы используете Mac, убедитесь, что у вас установлен Xcode 9.0 или выше.

Задайте конфигурацию решения, которую вы хотите создать. В этом примере установлено значение «Редактор разработки». Описание каждой доступной конфигурации см. в разделе «Конфигурация сборки».

Щелкните правой кнопкой мыши проект игры и выберите "Перестроить", чтобы перекомпилировать его.

Теперь вы можете запустить движок с скомпилированным проектом.

При запуске движка важно использовать исполняемый файл Unreal Engine, который соответствует конфигурации сборки, в которой вы перестроили свой проект. Например, если вы скомпилировали свой проект в конфигурации сборки DebugGame Uncooked, вы должны запустить UE4-Win64. -DebugGame.exe с информацией о вашей игре в качестве аргумента. Дополнительную информацию о соглашении об именовании двоичных файлов можно найти на странице Создание Unreal Engine.

При запуске Unreal важно добавить флаг -game, если вы пересобрали свой проект в любой конфигурации Uncooked, и флаг -debug, если вы пересобрали свой проект в любой конфигурации отладки.

Известные проблемы Visual Studio

Всегда появляется сообщение "Проект устарел"

Visual Studio считает, что проект устарел, когда он действительно актуален. Вы можете безопасно скрыть это сообщение, установив флажок Больше не показывать это диалоговое окно и нажав Нет.

При использовании конфигурации Отладка

окно с отладочной информацией не появляется.

Причина этого в том, что UE4editor.exe был скомпилирован с использованием конфигурации Разработка. Ваш игровой проект по-прежнему будет отлаживаться при компиляции с использованием конфигурации Debug, несмотря на это предупреждение. Вы можете безопасно скрыть это сообщение, установив флажок Больше не показывать это диалоговое окно и нажав Да.

Создание с помощью Xcode

При сборке в Xcode вы компилируете только проект игры, а не редактор.

Чтобы скомпилировать проект:

Проект Unreal Engine Xcode настроен на сборку конфигурации отладки при использовании параметра Xcode Product > Build и конфигурации Development при использовании Product > Build For > Profiling. Вы можете изменить это поведение, отредактировав целевые схемы.

Теперь вы можете запустить движок с скомпилированным проектом.

При запуске двоичного редактора важно добавить флаг -game, если вы пересобрали свой проект в любой конфигурации Uncooked, и флаг -debug, если вы пересобрали свой проект в любой конфигурации отладки.

Известные проблемы Xcode

Xcode не останавливается на точках останова

Отладчик Xcode LLDB необходимо настроить для правильной обработки точек останова в проектах Unreal Engine. Вам нужно создать (или отредактировать, если он у вас уже есть) файл .lldbinit в вашей домашней папке и добавить в него следующую строку:

Вы можете получить доступ к различным командам и окнам в Visual Studio, выбрав соответствующее сочетание клавиш. На этой странице перечислены сочетания клавиш по умолчанию для общего профиля, которые вы могли выбрать при установке Visual Studio. Независимо от того, какой профиль вы выбрали, вы можете указать ярлык для команды, открыв диалоговое окно «Параметры», развернув узел «Среда» и выбрав «Клавиатура». Вы также можете настроить свои сочетания клавиш, назначив другой ярлык для любой команды.

Список распространенных сочетаний клавиш и другую информацию о производительности см. в:

Дополнительные сведения о специальных возможностях в Visual Studio см. в разделах Советы и рекомендации по специальным возможностям и Практическое руководство. Используйте исключительно клавиатуру.

Шпаргалка с ярлыками для печати

Популярные сочетания клавиш для Visual Studio

Все сочетания клавиш в этом разделе применяются глобально, если не указано иное. Контекст Глобальный означает, что ярлык применим в любом окне инструментов в Visual Studio.

Вы можете найти ярлык для любой команды, открыв диалоговое окно "Параметры", развернув узел "Среда" и выбрав "Клавиатура".

Сборка: популярные сочетания клавиш

Отладка: популярные сочетания клавиш

Команды Сочетания клавиш [Особые контексты] Идентификатор команды
Перерыв в функции Ctrl+B Отладка.BreakatFunction
Разбить все Ctrl+Alt+Break Debug.BreakAll
Удалить все точки останова Ctrl+Shift+F9 Debug.DeleteAllBreakpoints
Исключения Ctrl+Alt+E Debug.Exceptions
Быстрый просмотр Ctrl+Alt+Q

Изменить: популярные сочетания клавиш

Команды Сочетания клавиш [Особые контексты] Идентификатор команды
Разрыв строки Введите [Текстовый редактор, дизайнер отчетов, дизайнер Windows Forms]

или Ctrl+Пробел [текстовый редактор, конструктор рабочих процессов]

или Ctrl+K, W [Конструктор рабочих процессов]

или Shift+Delete [Диаграмма последовательности, Диаграмма действий UML, Диаграмма слоев]

или Ctrl+K, Ctrl+L [Конструктор рабочих процессов]

или Ctrl+K, Ctrl+P [Конструктор рабочих процессов]

или Shift+Alt+Backspace

Файл: популярные сочетания клавиш

Команды Сочетания клавиш [Особые контексты] Идентификатор команды
Выход Alt+F4 Файл.Выход
Новый файл Ctrl+N File.NewFile
Новый проект Ctrl+Shift+N File.NewProject
Новый веб-сайт Shift+Alt+N File.NewWebSite
Открыть файл Ctrl+O File.OpenFile
Открыть проект Ctrl+Shift+ O File.OpenProject
Открыть веб-сайт Shift+Alt+O File.OpenWebSite
Переименовать F2 [Team Explorer] File.Rename
Сохранить все Ctrl+Shift+S File.SaveAll
Сохранить выбранные элементы Ctrl +S File.SaveSelectedItems
Просмотреть в браузере Ctrl+Shift+W Файл. Просмотр в браузере

Проект: популярные ярлыки

< td>Ctrl+Shift+A
Команды Сочетания клавиш [Особые контексты] Идентификатор команды
Добавить существующий элемент Shift+Alt+A Project.AddExistingItem
Добавить новый элемент Project.AddNewItem

Рефакторинг: популярные сочетания клавиш

Команда Сочетание клавиш [Особые контексты] Идентификатор команды
Метод извлечения Ctrl+R, Ctrl+M Refactor.ExtractMethod

Инструменты: популярные сочетания клавиш

Команда Сочетание клавиш [Особые контексты] Идентификатор команды
Присоединить к процессу Ctrl+Alt+P Tools.AttachtoProcess

Просмотр: популярные сочетания клавиш

Команды Сочетания клавиш [Особые контексты] Идентификатор команды
Представление класса Ctrl+Shift+C View.ClassView
Редактировать метку F2 View.EditLabel
Список ошибок Ctrl+\, Ctrl+E

Окно: популярные сочетания клавиш

Команды Сочетания клавиш [Особые контексты] Идентификатор команды
Активировать окно документа Esc Window.ActivateDocumentWindow
Закрыть окно документа Ctrl+ F4 Window.CloseDocumentWindow
Следующее окно документа Ctrl+F6 Window.NextDocumentWindow
Навигация по окну следующего документа Ctrl+Tab Window.NextDocumentWindowNav
Следующая разделенная панель F6 Window.NextSplitPane

Глобальные ярлыки

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

Анализ: глобальные ярлыки

Команды Сочетания клавиш Идентификатор команды
Навигация назад Shift+Alt+3 Analyze.NavigateBackward
Перейти вперед Shift+Alt+ 4 Analyze.NavigateForward
Команды Сочетания клавиш Идентификатор команды
Новый диаграмма Ctrl+\, Ctrl+N Architecture.NewDiagram
Команды Сочетания клавиш Идентификатор команды
Повторить операция сценария мобильной службы Ctrl+Num *, Ctrl+R WindowsAzure.RetryMobileServiceScriptOperation
Показать сведения об ошибке сценария мобильной службы< /td> Ctrl+Num *, Ctrl+D WindowsAzure.ShowMobileServiceScriptErrorDetails

Сборка: глобальные ярлыки

Контекстные меню представления класса: глобальные ярлыки

Команды Сочетания клавиш Идентификатор команды
Свойства Alt+Enter ClassViewContextMenus.ClassViewMultiselectProjectreferencesItems.Properties

Отладка: глобальные ярлыки

Контекстные меню отладчика: глобальные ярлыки

< td>DebuggerContextMenus.BreakpointsWindow.GoToSourceCode
Команды Сочетания клавиш Идентификатор команды
Удалить Alt+F9, D DebuggerContextMenus.BreakpointsWindow.Delete
Перейти к разборке Alt+ F9, A DebuggerContextMenus.BreakpointsWindow.GoToDisassembly
Перейти к исходному коду Alt+F9, S

Центр диагностики: глобальные ярлыки

Команда Сочетание клавиш Идентификатор команды
Стоп коллекция Ctrl+Alt+F2 DiagnosticsHub.StopCollection

Изменить: глобальные ярлыки

Команды Сочетания клавиш Идентификатор команды
Копировать Ctrl+C

Ctrl+Shift+Z

Контекстные меню редактора: глобальные ярлыки

Команды Сочетания клавиш Идентификатор команды
Точка останова условия Alt+F9, C EditorContextMenus.CodeWindow.Breakpoint.BreakpointConditions
Метки редактирования точки останова Alt+F9, L EditorContextMenus.CodeWindow.Breakpoint.BreakpointEditlabels
Вставить временную точку останова Shift+Alt+F9, T EditorContextMenus.CodeWindow.Breakpoint.InsertTemporaryBreakpoint
Показать элемент Ctrl+` EditorContextMenus.CodeWindow .CodeMap.ShowItem
Выполнить Ctrl+Alt+F5 EditorContextMenus.CodeWindow.Execute
Перейти к просмотру Ctrl+M, Ctrl+G EditorContextMenus.CodeWindow.GoToView
Переключить файл кода заголовка Ctrl+K, Ctrl+O (буква 'O') EditorContextMenus.CodeWindow.ToggleHeaderCodeFile
Просмотр иерархии вызовов Ctrl+K, Ctrl+T

< /таблица>

Файл: глобальные ярлыки

Команды Сочетания клавиш Идентификатор команды
Выход Alt+F4 File.Exit
Новый файл Ctrl+N File.NewFile
Новый проект Ctrl+Shift+N File.NewProject
Новый веб-сайт Shift+Alt+N File.NewWebSite
Открыть файл< /td> Ctrl+O (буква 'O') File.OpenFile
Открыть проект Ctrl+ Shift+O (буква 'O') File.OpenProject
Открыть веб-сайт Shift+Alt+O (буква 'O') File.OpenWebSite
Печать Ctrl+P File.Print< /td>
Сохранить все Ctrl+Shift+S File.SaveAll
Сохранить выбранные элементы Ctrl+S File.SaveSelectedItems
Просмотреть в браузере Ctrl+ Shift+W File.ViewinBrowser

Справка: глобальные ярлыки

Команды Сочетания клавиш Идентификатор команды
Добавить и удалить содержимое справки Ctrl+Alt+F1 Help.AddandRemoveHelpContent
F1 help F1 Help.F1Help
Посмотреть справку Ctrl+F1 Help.ViewHelp
Справка окна Shift+F1 Help.WindowHelp

Нагрузочный тест: глобальные ярлыки

Команда Сочетание клавиш Идентификатор команды
Переход для панели счетчика Ctrl+R, Q LoadTest.JumpToCounterPane

Другие контекстные меню: глобальные ярлыки

Команда Сочетание клавиш Идентификатор команды
Добавить новая диаграмма Вставить OtherContextMenus.MicrosoftDataEntityDesignContext.AddNewDiagram

Проект: глобальные ярлыки

< td>Предварительный просмотр изменений
Команды Сочетания клавиш Идентификатор команды
Добавить существующий элемент Shift+Alt+A Project.AddExistingItem
Добавить новый элемент Ctrl+ Shift+A Project.AddNewItem
Мастер классов Ctrl+Shift+X Проект. ClassWizard
Переопределить Ctrl+Alt+Ins Project.Override
Alt+; затем Alt+C Project.Previewchanges
Опубликовать выбранные файлы Alt+; затем Alt+P Проект.Опубликовать выбранные файлы
Заменить выбранные файлы с сервера Alt+; затем Alt+R Project.Replaceselectedfilesfromserver

Контекстные меню проекта и решения: глобальные ярлыки

Команды Сочетания клавиш Идентификатор команды
Переместить вниз Alt+Стрелка вниз ProjectandSolutionContextMenus.Item.MoveDown
Вверх Alt+Up Стрелка ProjectandSolutionContextMenus.Item.MoveUp

Рефакторинг: глобальные ярлыки

< td>Refactor.ExtractMethod < /tr>
Команды Сочетания клавиш Идентификатор команды
Инкапсулировать поле Ctrl+R, Ctrl+E Refactor.EncapsulateField
Извлечь интерфейс Ctrl+ R, Ctrl+I Refactor.ExtractInterface
Метод извлечения Ctrl+R, Ctrl+M
Удалить параметры Ctrl+R, Ctrl+V Refactor.RemoveParameters
Переименовать Ctrl+R, Ctrl+R Рефакторинг.Переименовать
Изменить порядок параметров Ctrl+R, Ctrl+O (буква 'O') Refactor.ReorderParameters

Обозреватель решений: глобальные ярлыки

Команды Сочетания клавиш Идентификатор команды
Открыть фильтр файлов Ctrl+[, O (буква 'О')

Команда: глобальные ярлыки

Команды Сочетания клавиш Идентификатор команды
Переход для веток git Ctrl+0 (ноль), Ctrl+N

Контекстные меню Team Foundation: глобальные ярлыки

Команды Сочетания клавиш Идентификатор команды
Переход для сборки Ctrl+0 (ноль), Ctrl+B

Тест: глобальные ярлыки

Обозреватель тестов: глобальные ярлыки

Инструменты: глобальные ярлыки

Команды Сочетания клавиш Идентификатор команды
Прикрепить для обработки Ctrl+Alt+P Tools.AttachtoProcess
Диспетчер фрагментов кода Ctrl+ K, Ctrl+B Tools.CodeSnippetsManager
Force gc Ctrl+Shift+Alt+F12, Ctrl+Shift+ Alt+F12 Tools.ForceGC

Вид: глобальные ярлыки

< /tr>
Команды Сочетания клавиш Идентификатор команды
Все windows Shift+Alt+M View.AllWindows
Обозреватель архитектуры Ctrl+\, Ctrl +R View.ArchitectureExplorer
Назад Alt+Стрелка влево (функционирует иначе, чем View.NavigateBackward в текстовом редакторе)< /td> View.Backward
Окно закладок Ctrl+K, Ctrl+W View.BookmarkWindow< /td>
Просмотреть следующее Ctrl+Shift+1 View.BrowseNext
Просмотр предыдущего Ctrl+Shift+2 View.BrowsePrevious
Вызов иерархии Ctrl+ Alt+K View.CallHierarchy
Просмотр класса Ctrl+Shift+C Просмотр. ClassView
Вид класса перейти к комбо-поиску Ctrl+K, Ctrl+V View.ClassViewGoToSearchCombo
Окно определения кода Ctrl+\, D

Окно: глобальные ярлыки

< td>Следующая панель< td>Следующая вкладка
Команды Сочетания клавиш Идентификатор команды
Активировать окно документа Esc Window.ActivateDocumentWindow
Добавить вкладку к выделенному Ctrl+Shift+Alt +Space Window.AddTabtoSelection
Закрыть окно документа Ctrl+F4 Window.CloseDocumentWindow< /td>
Закрыть окно инструмента Shift+Esc Window.CloseToolWindow
Оставить вкладку открытой Ctrl+Alt+Home Window.KeepTabOpen
Перейти к панели навигации Ctrl+F2 Window.MovetoNavigationBar
Следующее окно документа Ctrl+F6 Window.NextDocumentWindow
Навигация по окну следующего документа Ctrl+Tab Window.NextDocumentWindowNav
Alt+F6 Window.NextPane
Следующая разделенная панель F6< /td> Window.NextSplitPane
Ctrl+Alt+PgDn

Сочетания клавиш в зависимости от контекста

Эти сочетания клавиш зависят от контекста, что означает, что вы можете использовать их с меню и элементами в Visual Studio, относящимися к типу проекта, языку программирования или платформе.

Добавление ресурсов в проект и использование представления ресурсов.

Использование шаблона ресурса для создания настраиваемых ресурсов.

Использовать файлы сценариев ресурсов

Прежде чем создавать и добавлять в проект новые ресурсы, необходимо сначала создать файл сценария ресурсов (.rc).

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

Чтобы создать файл сценария ресурса

Перенесите фокус на существующую папку проекта в обозревателе решений, например, MyProject.

Не путайте папку проекта с папкой решения в обозревателе решений. Если вы переместите фокус на папку «Решение», у вас не будет тех же вариантов «Добавить новый элемент».

В меню выберите Проект > Добавить новый элемент.

Выберите папку Visual C++ и выберите Файл ресурсов (.rc) на правой панели.

Укажите имя для файла сценария ресурса в текстовом поле "Имя" и выберите "Открыть".

Чтобы открыть файл сценария ресурса

Вы можете просматривать ресурсы в файле сценария ресурсов, не открывая проект. Файл сценария открывается в окне документа, а не в представлении ресурсов.

Некоторые команды доступны только в том случае, если файл открыт автономно, то есть вне проекта без предварительной загрузки проекта. Например, чтобы использовать команду «Сохранить как» и сохранить файл в другом формате или с другим именем, этот файл необходимо открыть отдельно.

Чтобы открыть файл сценария ресурса вне проекта, в меню выберите «Файл» > «Открыть» и выберите «Файл». Перейдите к файлу сценария ресурсов, выделите файл и нажмите кнопку «Открыть».

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

Чтобы открыть файл сценария ресурсов в текстовом формате, используйте стрелку раскрывающегося списка справа от кнопки "Открыть" на шаге выше и выберите "Открыть с помощью". Выберите «Редактор исходного кода (текст)» и в раскрывающемся списке «Открыть как» выберите «Текст», и ресурс откроется в редакторе исходного кода.

Чтобы открыть несколько сценариев ресурсов, выполните описанные выше действия для каждого файла, который вы хотите открыть, например Source1.rc и Source2.rc. Затем, когда оба файла .rc открыты в отдельных окнах документов, либо используйте меню «Окно», либо щелкните правой кнопкой мыши один из файлов и выберите «Новая горизонтальная группа вкладок» или «Новая вертикальная группа вкладок». Теперь окна расположены мозаикой, поэтому вы можете просматривать их одновременно.

Вы можете открыть файлы сценариев ресурсов, щелкнув правой кнопкой мыши файл .rc в обозревателе решений, выбрав Открыть с помощью и выбрав Редактор исходного кода (текстовый).

При создании приложения Microsoft Foundation Class (MFC) для Windows с помощью мастера приложений MFC мастер создает базовый набор файлов, включая файл сценария ресурсов (.rc), который содержит основные функции MFC. Однако эти специфичные для MFC функции недоступны при редактировании RC-файла для приложений Windows, не основанных на MFC. Сюда входят мастера кода, строки подсказок меню, содержимое списков для элементов управления полем со списком и размещение элементов управления ActiveX.

Чтобы добавить поддержку MFC, при открытом файле сценария ресурсов в представлении ресурсов выделите папку ресурсов (например, MFC.rc). Затем в окне свойств установите для режима MFC значение True.

Помимо настройки режима MFC, файл .rc должен быть частью проекта MFC. Только установка для режима MFC значения True для RC-файла в проекте Win32 не даст вам возможностей MFC.

Создать ресурсы

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

Используйте окно просмотра ресурсов для отображения файлов ресурсов, включенных в ваши проекты. Если развернуть верхнюю папку, например Project1.rc, отобразятся типы ресурсов в этом файле. Разверните каждый тип ресурсов, чтобы отобразить отдельные ресурсы этого типа.

Чтобы открыть окно просмотра ресурсов, перейдите в меню "Просмотр" > "Другие окна" > "Просмотр ресурсов" или нажмите Ctrl+Shift+E.

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

Окна просмотра ресурсов содержат диалоговое окно "Добавить ресурс" со следующими свойствами для добавления ресурсов в проект настольного приложения C++ для Windows:

Вы можете развернуть категории ресурсов курсора и диалогового окна, чтобы открыть дополнительные ресурсы, расположенные в ..\Microsoft Visual Studio \VC\VCResourceTemplates\ \mfc.rct. Если вам нужно добавить .rct, поместите их сюда или укажите другой путь включения. Ресурсы, отображаемые на верхнем уровне древовидного элемента управления, являются ресурсами по умолчанию, предоставляемыми Visual Studio. Ресурсы в файлах .rct отображаются на втором уровне в соответствующей категории. Количество добавляемых файлов .rct не ограничено.

При создании нового ресурса Visual C++ присваивает ему уникальное имя, например, IDD_Dialog1 . Вы можете настроить этот идентификатор ресурса, изменив свойства ресурса либо в соответствующем редакторе ресурсов, либо в окне свойств.

Не указывайте имя или идентификатор ресурса, зарезервированные Visual Studio. Зарезервированные имена — DESIGNINFO , HWB и TEXTINCLUDE , а зарезервированный идентификатор — 255 .

Чтобы создать ресурс

В представлении ресурсов выберите файл .rc, затем нажмите «Правка» > «Добавить ресурс» и выберите тип ресурса, который нужно добавить в проект.

Вы также можете щелкнуть правой кнопкой мыши файл .rc в представлении ресурсов и выбрать "Добавить ресурс" в контекстном меню.

В обозревателе решений щелкните правой кнопкой мыши папку проекта, выберите "Добавить" > "Добавить ресурс" и выберите тип ресурса, который нужно добавить в проект.

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

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

Используйте меню Проект > Добавить ресурс.

Использовать шаблоны ресурсов

Шаблон ресурса – это настроенный ресурс, который вы сохранили в виде файла .rct. Затем шаблон ресурса служит отправной точкой для создания ресурсов. Шаблоны ресурсов экономят время при разработке дополнительных ресурсов или групп ресурсов с общими функциями, такими как стандартные элементы управления или повторяющиеся элементы. Например, если вы хотите включить кнопку справки со значком логотипа компании в несколько диалоговых окон, создайте новый шаблон диалогового окна и настройте его с помощью кнопки справки и логотипа.

После настройки шаблона ресурса сохраните изменения в папке шаблона или в месте, указанном в пути включения, чтобы новый шаблон ресурса отображался под своим типом ресурса в диалоговом окне "Добавить ресурс". Теперь вы можете использовать новый шаблон ресурса так часто, как это необходимо.

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

Поместите файлы шаблонов для конкретного языка в подкаталоги основного каталога шаблонов. Например, файлы шаблонов только на английском языке находятся в папке ..\ \1033.

Visual Studio ищет новые файлы .rct в \Program Files\Microsoft Visual Studio \VC\VCResourceTemplates, \Program Files\Microsoft Visual Studio \VC\VCResourceTemplates\ (например, LCID 1033 для английского языка) или в любом месте пути включения. Если вы предпочитаете хранить файлы .rct в другом месте, вы должны добавить это место в путь включения.

Чтобы создать и использовать шаблон ресурса

В обозревателе решений щелкните проект правой кнопкой мыши и выберите "Добавить" > "Добавить новый элемент".

На панели "Шаблоны:" выберите "Файл шаблона ресурсов" (.rct).

Укажите имя и местоположение для нового файла .rct и нажмите «Открыть».

Новый файл .rct добавляется в проект и отображается в обозревателе решений в папке "Ресурсы".

Дважды щелкните файл .rct, чтобы открыть его в окне документа. Чтобы добавить ресурсы, щелкните файл правой кнопкой мыши в окне документа и выберите "Добавить ресурс".

Вы можете настроить добавленные ресурсы и сохранить файл .rct.

На панели просмотра ресурсов щелкните правой кнопкой мыши файл .rc и выберите Добавить ресурс.

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

Дважды щелкните шаблон, который хотите использовать.

При необходимости вы можете изменить добавленный ресурс в его редакторе ресурсов.

Преобразование существующего файла ресурсов в шаблон

Открыв файл сценария ресурсов, в меню выберите «Файл» > «Сохранить как». Укажите местоположение и нажмите OK.

Скачивание SDK

Компиляция примеров SDK

  1. Для начала откройте файл Samples.sln из папки C SDK Samples в Visual Studio 2019.
  2. Открыв решение, нажмите Ctrl+Shift+B, чтобы собрать все проекты. На этом этапе вы, вероятно, увидите следующее всплывающее сообщение об ошибке для каждого проекта:
    1. Чтобы устранить эти ошибки, щелкните правой кнопкой мыши узел решения в обозревателе решений и выберите Переназначить решение. Здесь вы можете выбрать установленную вами версию Windows SDK (в моем случае 10.0.19041.0) и при желании обновить набор инструментов платформы до версии 142.Поскольку мы уже установили v141 набора инструментов во время установки, я не буду обновлять его.
    1. Поскольку решение перенацелено, построение с помощью Ctrl+Shift+B теперь должно завершиться успешно.


    Кроме того, вы можете найти эти значения, перейдя к своему продукту и щелкнув Настройки продукта в меню слева. Вам потребуются идентификатор продукта, идентификатор песочницы, идентификатор развертывания, идентификатор клиента и секрет клиента.

    Краткое объяснение Model-View-ViewModel

    • Команды — функции, которые мы привязываем к кнопкам в представлениях для выполнения кода.
    • Конвертеры — вспомогательные функции для преобразования одного типа (например, строки) в другой тип (например, логический) в зависимости от того, что мы хотим (например, преобразовать пустые строки в ложное логическое значение).
    • Вспомогательные функции: общие вспомогательные функции, такие как реализация INotifyPropertyChanged, которая помогает обновлять пользовательский интерфейс при изменении базовых значений в ViewModel.
    • Сервисы — наши основные классы для функциональности
    • ViewModels — контейнер для значений и экземпляров команд, которые мы будем использовать в наших представлениях.
    • Представления – компоненты пользовательского интерфейса, которые мы представляем пользователю.

    Инициализация EOS SDK

    В завершение настройки нашего решения мы реализуем код инициализации EOS SDK, чтобы мы могли начать добавлять дополнительные реализации службы EOS в будущих статьях.

    1. Начните с добавления нового класса в корень проекта с именем ApplicationSettings.cs. Не забудьте указать собственные учетные данные SDK для каждого параметра.

    открытая строка ClientId < get ; индивидуальный набор; >= "" ;
    публичная строка ClientSecret < get ; индивидуальный набор; >= "" ;

    публичная строка DeploymentId < get ; индивидуальный набор; >= "" ;

    public PlatformInterface PlatformInterface

    1. В этом файле будут отслеживаться наши учетные данные SDK, основной экземпляр PlatformInterface (который является ядром SDK, обеспечивающим доступ ко всем другим службам) и код инициализации командной строки. Если вы опубликуете игру в Epic Games Store, информация будет передана в вашу игру с помощью аргументов командной строки, таких как идентификатор пользователя. Мы продолжим использовать этот файл для отслеживания переменных инициализации (таких как тип учетных данных аутентификации и области действия).
    2. Разрешить все неизвестные типы, добавив в файл соответствующие инструкции using.
    3. Затем добавьте новый файл словаря ресурсов (WPF) с именем ApplicationResources.xaml в корень проекта. Мы можем пока оставить это поле пустым, но мы будем использовать его для добавления ссылок на преобразователи, которые мы будем использовать в будущих статьях. Откройте App.xaml и добавьте этот новый ResourceDictionary со следующим кодом XAML:
      1. Откройте App.xaml.cs и вставьте следующий код, чтобы создать статическую ссылку на наши ApplicationSettings и проанализировать любые передаваемые аргументы командной строки:

      p защищенное переопределение void OnStartup ( StartupEventArgs e )
      // Получаем аргументы командной строки (если есть) для перезаписи настроек по умолчанию
      var commandLineArgsDict = new Dictionary string , string >();
      for ( int index = 0 ; index e.Args.Length; index += 2 )
      commandLineArgsDict. Добавить (e.Args[индекс], e.Args[индекс + 1]);
      >

      Настройки = новые настройки приложения ();
      Настройки. Инициализировать (commandLineArgsDict);

      1. Наконец, мы будем использовать MainWindow.xaml.cs для настройки и инициализации SDK. Начните с добавления таймера для имитации игровых тиков. EOS SDK использует этот таймер для запуска методов обратного вызова для вызовов службы:
        1. Добавьте обработчик события закрытия окна, чтобы освободить экземпляр PlatformInterface и завершить процесс завершения работы.
        1. Мы определим функцию InitializeApplication(), которую будем вызывать при создании экземпляра MainWindow, чтобы можно было настроить SDK.

        var result = PlatformInterface. Инициализировать (initializeOptions);
        Отладка. WriteLine ($"Инициализировать: <результат>");

        _ = LoggingInterface. SetLogLevel(LogCategory.AllCategories, LogLevel.Info);
        _ = LoggingInterface. SetCallback ((сообщение LogMessage) => Debug.WriteLine($"[<сообщение.Уровень>] <сообщение.Категория>-<сообщение.Сообщение>" ));

        var options = new Options ()
        ProductId = App.Settings.ProductId,
        SandboxId = App.Settings.SandboxId,
        ClientCredentials = new ClientCredentials ()
        ClientId = App.Settings.ClientId,
        ClientSecret = App.Settings.ClientSecret
        >,
        DeploymentId = App.Settings.DeploymentId,
        Flags = PlatformFlags.DisableOverlay,
        IsServer = ложь
        >;

        PlatformInterface platformInterface = PlatformInterface. Создать (варианты);

        if (platformInterface == null )
        Отладка. WriteLine ($"Не удалось создать платформу. Убедитесь, что установлены соответствующие настройки.");
        >

        updateTimer = new DispatcherTimer (DispatcherPriority.Render)
        Interval = new TimeSpan ( 0 , 0 , 0 , 0 , ( int )(updateFrequency * 1000 ))
        >;

        updateTimer.Tick += (sender, e) => Update (updateFrequency);
        Таймер обновления. Начинать ();
        >

        • Как правило, вызовы службы EOS состоят из создания экземпляра класса Options, который будет передан вызываемой вами функции. В данном случае мы создаем экземпляр InitializeOptions и передаем его функции Initialize() интерфейса PlatformInterface.
        • Эта конкретная функция немедленно возвращает результат, но часто вызов службы принимает функцию обратного вызова в качестве параметра, который срабатывает после завершения функции. Мы увидим пример этого в следующей статье, где мы рассмотрим аутентификацию.
        • Далее мы используем интерфейс ведения журналов, чтобы определить, как мы хотим получать наши журналы. В нашем примере приложения все сообщения журнала будут выводиться в окно вывода отладки, но здесь вы также можете настроить запись журналов в файл или в облачную службу, если хотите.
        • Затем мы повторяем тот же шаблон вызова Options -> с PlatformInterface.Create, чтобы создать PlatformInterface и сохранить экземпляр в App.Settings для последующего извлечения в приложении.
        • Наконец, мы устанавливаем наш таймер с интервалом updateFrequency (в данном случае 1/30), устанавливаем обработчик события тика и запускаем его. Общее руководство здесь состоит в том, чтобы установить этот интервал равным частоте тиков вашей игры, чтобы обеспечить реакцию на обратные вызовы API. Обратите внимание, что SDK не является потокобезопасным, и все вызовы SDK должны выполняться из того же потока, который его инициализировал.
        1. Обработчик событий таймера вызывает метод PlatformInterface Tick, чтобы обеспечить успешный вызов любых асинхронных обратных вызовов.
          1. Наконец, добавьте вызов InitializeApplication() в конструктор MainWindow

          Инициализация: Успех
          [Информация] LogEOSOverlay — оверлей не будет загружен, так как он был явно отключен при создании платформы
          [Информация] LogEOSAntiCheat — [AntiCheatClient] Античит-клиент недоступен. Убедитесь, что игра была запущена с правильным лаунчером, если вы собираетесь его использовать.
          [Информация] LogEOS — Обновление конфигурации SDK платформы, время: 0,368525
          [Информация] LogEOS — Успешный запрос обновления платформы SDK Config, время: 0,821195
          [Информация] LogEOSAnalytics — Начало сеанса (Пользователь: . )
          [Предупреждение] LogEOSAnalytics — EOS SDK Analytics отключен для маршрута [1].
          [Информация] LogEOS — обновление конфигурации SDK продукта, время: 0,866974
          [информация] LogEOSAnalytics — запуск сеанса (пользователь: . )
          [информация] LogEOS — запрос на обновление продукта конфигурации SDK выполнен успешно, время : 1.350656
          [Информация] LogEOS — Данные конфигурации SDK — Водяной знак: 82749226
          [Информация] LogEOS — ScheduleNextSDKConfigDataUpdate — Время: 1.350656, Интервал обновления: 325.699646

          Создание нашей архитектуры MVVM

          1. Для начала создайте папку Helpers в корне нашего проекта.
          2. Здесь мы создадим два вспомогательных класса, которые помогут нам в реализации MVVM. Я не буду описывать их функциональность, но это легко можно найти в других статьях. Создайте новый класс BindableBase.cs:

          защищенное логическое значение SetProperty (ref T storage, T value, [CallerMemberName] string propertyName = null)
          if (Equals (storage, value)) return false;

          хранилище = значение;
          OnPropertyChanged (propertyName);
          вернуть истину;
          >

          public virtual void Execute (параметр объекта)
          throw new NotImplementedException ();
          >

          1. Создав эти 2 класса, создайте папку ViewModels в корне нашего проекта. Здесь мы будем хранить наши ViewModels и класс ViewModelLocator для ссылки на них. Начните с создания класса MainViewModel.cs:
          1. Затем создайте класс ViewModelLocator.cs:
            1. Далее мы создадим несколько преобразователей, которые помогут в некоторой автоматизации пользовательского интерфейса. Создайте папку Converters в корне нашего проекта и добавьте класс StringToBooleanConverters.cs:

            строка stringValue = значение в виде строки;

            1. И добавьте еще один класс с именем StringToVisibilityConverter.cs:

            общедоступный объект Convert (значение объекта, тип targetType, параметр объекта, культура CultureInfo)
            if (value == null || ! (значение — строка))
            return Visibility.Collapsed;
            >

            строка stringValue = значение в виде строки;

            1. Наконец, откройте ApplicationResources.xaml в корне нашего проекта и замените его следующим XAML. Обратите внимание: если ваш проект не называется EOCSharpSample, вам придется изменить пространство имен рядом с xmlns:c=". "

            c:StringToVisibilityConverter x:Key= "StringToVisibilityConverter" />

            c:StringToBooleanConverter x:Key= "StringToBooleanConverter" />

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