如何摆脱cppwinrt头文件中警告C4002的过多参数

时间:2019-08-13 05:34:02

标签: windows-runtime c++-winrt winrt-component

在以下情况下,我收到了太多的警告警告。我可以将其报告为一个错误,但是GitHub中的存储库已关闭,并且cpp-winrt项目现在归Microsoft所有。

  

情况   使用cpp-winrt项目模板创建一个新的Windows运行时组件项目。   在项目设置的c ++->预处理器部分的“预处理器定义”中添加宏“ WINAPI_PARTITION_DESKTOP”。   编译项目。

您将收到以下警告:

…\生成的文件\ winrt \ impl \ windows.ui.xaml.media.animation.0.h(4510):警告C4002:类似于函数的宏调用“ GetCurrentTime”的参数过多

与以上消息相对应的行是“虚拟int32_t __stdcall GetCurrentTime(int64_t *)noexcept = 0;”

名称GetCurrentTime可能与Windows旧版API名称冲突!

1 个答案:

答案 0 :(得分:0)

GetCurrentTime是Windows.h宏定义与WinRT成员之间的已知冲突。一种解决方案是在您的pch.h中#undef GetCurrentTime。