用于识别 WinRT 的宏

Macro to recognize WinRT?

本文关键字:的宏 WinRT 识别 用于      更新时间:2023-10-16

是否有新的宏可以在代码中确定应用程序是否在 WinRT 上运行?当我使用 LoadLibrary 时,如果有一个宏可以将所有对LoadLibrary的调用替换为一个 to LoadPackagedLibrary,那就太好了......

我理解文档是正确的,因为我可以通过LoadPackagedLibrary加载任何 DLL(只要它在我的包内),对吧?!(只要该 DLL 不使用列入黑名单的 API...

我最近更新到 Visual Studio 2012,我想我找到了问题的答案:

在Microsoft标头中,宏WINAPI_FAMILY_PARTITION用于确定WinAPI的"级别"。目前有WINAPI_PARTITION_DESKTOPWINAPI_PARTITION_APP,因此我"猜测"通过这个宏可以区分桌面和地铁......

这两个宏引出另一组宏:#define WINAPI_FAMILY_APP WINAPI_PARTITION_APP#define WINAPI_FAMILY_DESKTOP_APP (WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_APP)。因此,如果定义了WINAPI_FAMILY_APP,人们应该能够假设它是一个 Metro 应用程序......

要添加您的答案,请参阅这篇文章 游戏的两用编码技术

在介绍部分

为 Windows 应用商店编写的应用利用 Windows 运行时 (WinRT) 和位于核心 API 中的受限 Win32 API 子集 家庭(由设置为 WINAPI_PARTITION_APP 的WINAPI_FAMILY指示)。 传统的 Win32 桌面应用可以访问更大的桌面 API 家庭(由设置为 WINAPI_PARTITION_DESKTOP 的WINAPI_FAMILY表示), 但这取决于每个操作系统所需的不同级别的操作系统支持 功能

尝试__WRL_WINRT_STRICT__ . 不完全确定这是正确的,但如果你去查看该文件,它可能会有你想要的。

从这里和这里。