是否有新宏在代码中确定应用程序是否在WinRT上运行?当我正在使用LoadLibrary
时,如果有一个宏将LoadLibrary
的所有调用替换为LoadPackagedLibrary
,则会很棒...
我理解文档是正确的,因为我可以通过LoadPackagedLibrary
加载任何DLL(只要它在我的包中),对吧?! (只要该DLL不使用黑名单的API ......)
答案 0 :(得分:4)
我最近更新到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应用程序......
答案 1 :(得分:2)
要添加回答,请参阅此文Dual-use Coding Techniques for Games
在介绍部分
为Windows应用商店编写的应用程序使用Windows运行时 (WinRT)和位于核心API中的Win32 API的受限子集 family(由WINAPI_FAMILY指示设置为WINAPI_PARTITION_APP)。 传统的Win32桌面应用程序可以访问更大的桌面API family(由WINAPI_FAMILY指示设置为WINAPI_PARTITION_DESKTOP), 但是这需要各自所需的各种级别的OS支持 功能
答案 2 :(得分:0)