对不起我的英语不太好。我有这样一堂课
struct WrapPanel :winrt::Windows::UI::Xaml::Controls::PanelT<WrapPanel>
{
public:
WrapPanel(std::nullptr_t) {};
// other code.....
}用于其他类
WrapPanel wrapPanel{ ItemsPanelRoot().try_as<WrapPanel>()};
//Error C2440 'initializing': cannot convert from 'initializer list' to 'WrapPanel' 类似:从基本运行时类转换为派生类的https://learn.microsoft.com/en-us/windows/uwp/cpp-and-winrt-apis/move-to-winrt-from-cx
发布于 2018-12-20 13:27:45
如果您在C++/WinRT中创建了一个运行时类,那么您将在不同的名称空间中得到几个同名的类。假设有一个名为NS1的名称空间,其中有一个名为WrapPanel的运行时类,您将得到winrt::NS1::WrapPanel、winrt::NS1::implementation::WrapPanel和winrt::NS1::factory_implementation::WrapPanel。第一个是我们通常使用的运行时类的“投影”;第二个是实现运行时类的“实现”;第三个是module.g.cpp使用的“工厂”。
如果将基类转换为派生类,则应使用“投影”。您似乎使用了“实现”。
https://stackoverflow.com/questions/53706920
复制相似问题