gpt4 book ai didi

c++ - 适用于 WinAPI 和 WinRT 的单个 DirectX/C++ 项目

转载 作者:行者123 更新时间:2023-11-28 05:50:42 27 4
gpt4 key购买 nike

目前我正在做一个简单的游戏引擎项目。我希望它独立于平台,所以一开始我只使用了经典的 Windows 桌面应用程序和 Metro Style 应用程序。

来自这张图片: Windows APIs

我们可以看到 C/C++ block 对于这两个部分是通用的。换句话说,我想在平台配置之间轻松切换。我已经创建了简单的 WinAPI 静态库,您可以轻松地将其包含在项目中,以及 DirectX 游戏引擎,它运行良好。但是,我在使用 WinRT(用于 Metro Style 应用程序)时遇到了同样的问题。

是否可以有一个 Visual Studio 项目可以使用 WinAPI 或 WinRT?如果我可以为一款游戏提供一个单一的入口点并且只切换底层 API,那就太完美了。

最佳答案

没有。生成经典 win32 exe 和 WinRT(现在通用)应用程序的单个 VS 项目是不可能的。

从理论上讲,他们本可以让这一切成为可能,就像您可以拥有一个生成控制台应用程序或图形用户界面应用程序的项目一样。两者之间的区别归结为一个(或两个)标志。

经典 exe 和 WinRT 应用程序之间的区别非常大:有 list 和打包以及特殊的调味料签名,更不用说资源(图标等)的指定不同了。

在 Visual Studio UI 中,这通过一组不同的属性页来体现,当然除了编译器 + 链接器的共同核心之外。

另一个原因是策略。 Microsoft 希望您继续前进并拥抱 WinRT API。这是适用于所有 Windows 设备的 API 集(如果您忽略房间里的 Win7 大象)。支持双模式会向开发者发出错误的信号。

作为旁注,正是 Windows header (windows.h) 由 API 系列注释。 CreateNamedPipe 在 WinRT 应用程序中是 #ifdef,或者例如,CreateFile 用于经典应用程序,CreateFile2 用于现代应用程序。

关于c++ - 适用于 WinAPI 和 WinRT 的单个 DirectX/C++ 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35313231/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com