В настоящее время я работаю над простым проектом игрового движка. Я бы хотел, чтобы он был независимым от платформы, поэтому для начала я взял только классическое приложение Windows Desktop и приложение Metro Style.Отдельный проект DirectX/C++ для WinAPI и WinRT
Из этой картины: Windows APIs
Мы можем видеть, что блоки C/C++, являются общими для обеих частей. Другими словами, я хотел бы легко переключаться между конфигурациями платформ. Я создал простую статическую библиотеку WinAPI, которую можно легко включить в проект, а также движок DirectX, и он отлично работает. Однако у меня возникают проблемы с тем же, что и в WinRT (используется в приложениях Metro Style).
Возможно ли иметь один проект Visual Studio, который может использовать WinAPI или WinRT? Было бы идеально, если бы у меня могла быть одна точка входа для игры и просто переключать базовые API.
Один vcxproj, содержащий как UWP, так и классическое настольное приложение для Windows, теоретически возможно с большим количеством пользовательских '' .props'' файлов, но, как правило, огромная боль и хрупкость. Лучше иметь параллельные файлы vcxproj для каждого типа с общим кодом. Я использую этот метод для DirectXTK, DirectXTex, DirectXMesh. Что касается создания кода во всех этих контекстах, см. [Эту статью] (http://blogs.msdn.com/b/chuckw/archive/2012/09/17/dual-use-coding-techniques-for -games.aspx), но имейте в виду, что «appmodel» совсем другой, поэтому общий код полезности хорош, совместный пользовательский интерфейс не является. –