【发布时间】:2020-12-17 16:58:22
【问题描述】:
在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。我错过了什么?
【问题讨论】:
-
谢天谢地,库只是阻止你返回一个悬空指针。
-
没有办法解决吗?
标签: windows-runtime uwp-xaml c++-winrt cppwinrt