我需要设置哪些编译器设置以避免:
错误C2672“unbox_value_type”:未找到匹配的重载函数C:\Program Files(x86)\Windows Kits\10\Include\10.0.22000.0\cppwinrt\winrt\Windows.Foundation.h 2901Windows.Foundation.h
文件是只读的,我希望保持这种状态。
我正在尝试创建一个使用WebView2的Windows应用程序。我安装了VS2022(免费版),下载了WebView2示例(示例解决方案构建正常)。我创建了一个新的项目,我试图从示例中添加片段,但编译器在上面提到的文件的第2901行出错。
1条答案
按热度按时间nhaq1z211#
您需要在任何cppwinrt头之前使用
#include <unknwn.h>
来启用经典COM支持。有用的阅读(这两篇文章都是由Raymond Chen撰写的):
first_interface
is not a member ofwinrt::impl::interface_list<>
?我注意到,默认情况下,C++/WinRT需要从
winrt::Windows::Foundation::IUnknown
派生接口。您可以通过在包含任何C++/WinRT头文件之前包含**unknwn.h
**头文件来激活非默认行为,在这种情况下,C++/WinRT也将识别从经典COMIUnknown
派生的类型作为接口。