在cppcx中,我曾经有这个:
auto button = safe_cast<ContentControl ^>(obj);
if (auto text = dynamic_cast<Platform::String^>(button->Content)) {
return text->Data();
}
当我尝试这样做以将此代码转换为 cppwinrt 时:
auto button = obj.as<winrt::ContentControl>();
if (auto text = button.Content().try_as<winrt::hstring>()) {
return text.c_str();
}
我收到以下错误:
错误(活动) E0312 不存在从“winrt::impl::com_refwinrt::hstring”到“wchar_t*”的合适的用户定义转换
我希望我会因为 try_as 而得到一个 winrt::hstring 并且我可以从中得到 .c_str() ,但我得到的是一个 winrt::impl::com_refwinrt::hstring 。我错过了什么?