C++ 在 MessageDialog 中显示捕获的异常

安徒生

我目前正在使用 Windows 通用应用程序学习 C++/CX,我想在 中显示捕获的异常消息MessageDialog,但是,C++/CX 以我不理解的方式工作,因为我无法转换char*进入一种string类型,这是MessageDialog期望的输入。

catch (const std::invalid_argument ex)
{
   MessageDialog^ ErrorBox = ref new MessageDialog(ex.what());
   ErrorBox->ShowAsync();
}

我希望你能帮助我。

丹尼尔·特鲁格曼

MessageDialog接受Platform::String

Platform::String接受char16* s

并且您有一个char*,因此,您必须找到一种方法将其转换为char16*,这就是您的操作方式:

wchar_t buffer[ MAX_BUFFER ];
mbstowcs( buffer, ex.what(), MAX_BUFFER );
platformString = ref new Platform::String( buffer );

这应该有效:

catch (const std::invalid_argument ex)
{
   wchar_t buffer[ MAX_BUFFER ];
   mbstowcs( buffer, ex.what(), MAX_BUFFER );
   platformString = ref new Platform::String( buffer );
   MessageDialog^ ErrorBox = ref new MessageDialog(platformString);
   ErrorBox->ShowAsync();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章