是否有新的宏可以在代码中确定应用程序是否在 WinRT 上运行?正如我正在使用的LoadLibrary
那样,如果有一个宏可以将所有调用替换为LoadLibrary
一个 to LoadPackagedLibrary
...
我理解文档是正确的,因为我可以通过加载任何 DLL(只要它在我的包中)LoadPackagedLibrary
,对吧?!(只要该 DLL 不使用列入黑名单的 API……)
是否有新的宏可以在代码中确定应用程序是否在 WinRT 上运行?正如我正在使用的LoadLibrary
那样,如果有一个宏可以将所有调用替换为LoadLibrary
一个 to LoadPackagedLibrary
...
我理解文档是正确的,因为我可以通过加载任何 DLL(只要它在我的包中)LoadPackagedLibrary
,对吧?!(只要该 DLL 不使用列入黑名单的 API……)
我最近更新到 Visual Studio 2012,并认为我找到了我的问题的答案:
在 Microsoft 标头中,宏WINAPI_FAMILY_PARTITION
用于确定 WinAPI 的“级别”。目前有WINAPI_PARTITION_DESKTOP
和WINAPI_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 表示),但这取决于每个功能所需的不同级别的操作系统支持