用于识别 WinRT 的宏
Macro to recognize WinRT?
是否有新的宏可以在代码中确定应用程序是否在 WinRT 上运行?当我使用 LoadLibrary
时,如果有一个宏可以将所有对LoadLibrary
的调用替换为一个 to LoadPackagedLibrary
,那就太好了......
我理解文档是正确的,因为我可以通过LoadPackagedLibrary
加载任何 DLL(只要它在我的包内),对吧?!(只要该 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表示), 但这取决于每个操作系统所需的不同级别的操作系统支持 功能
尝试__WRL_WINRT_STRICT__
. 不完全确定这是正确的,但如果你去查看该文件,它可能会有你想要的。
从这里和这里。
- enum是C++中的宏变量还是整数变量
- 定义有趣的宏和正则表达式在Z3 C++绑定
- 是否可以将带有字符串化运算符的宏转换为 constexpr?
- 在使用包含冒号的类似函数的宏时,是什么导致了这种编译器差异?
- 如何编写将展开以定义具有模板参数的对象的宏
- 用于创建命名构造函数的宏
- 获取 if 语句以检查定义的宏
- VS2017 #error: : snprintf 的宏定义与标准库函数声明冲突
- c++ 替换调用对象方法的宏函数
- 为什么在使用不相关的宏时会阻止 while 循环结束?
- 如何创建独立于平台的宏来包装编译器扩展?
- Visual Studio:snprintf 冲突的宏定义
- 类似函数的宏参数名称替换是否保证永远不会发生?
- 模板定义的宏
- 表达式中的宏未按预期工作
- 查找有问题的宏
- 如何在C++中定义扩展到条件语句的宏?
- 如何确保使用相同的宏的不同C++代码库?
- C/C++ 包含点的宏参数(成员访问运算符)
- 用于识别 WinRT 的宏