c++ 修复“未找到匹配的重载函数”

k75qkfdt  于 2023-05-20  发布在  其他
关注(0)|答案(1)|浏览(214)

我需要设置哪些编译器设置以避免:
错误C2672“unbox_value_type”:未找到匹配的重载函数C:\Program Files(x86)\Windows Kits\10\Include\10.0.22000.0\cppwinrt\winrt\Windows.Foundation.h 2901
Windows.Foundation.h文件是只读的,我希望保持这种状态。
我正在尝试创建一个使用WebView2的Windows应用程序。我安装了VS2022(免费版),下载了WebView2示例(示例解决方案构建正常)。我创建了一个新的项目,我试图从示例中添加片段,但编译器在上面提到的文件的第2901行出错。

nhaq1z21

nhaq1z211#

您需要在任何cppwinrt头之前使用#include <unknwn.h>来启用经典COM支持。
有用的阅读(这两篇文章都是由Raymond Chen撰写的):

我注意到,默认情况下,C++/WinRT需要从winrt::Windows::Foundation::IUnknown派生接口。您可以通过在包含任何C++/WinRT头文件之前包含**unknwn.h**头文件来激活非默认行为,在这种情况下,C++/WinRT也将识别从经典COM IUnknown派生的类型作为接口。

相关问题