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条评论
登录后参与评论

相关文章

来自分类Dev

C# WPF 中缺少 MessageDialog

来自分类Dev

MessageDialog访问被拒绝的异常

来自分类Dev

在MessageDialog中禁用按键

来自分类Dev

一次显示多个MessageDialog

来自分类Dev

一次显示多个MessageDialog

来自分类Dev

JFace的MessageDialog在open()方法中失败

来自分类Dev

Windows Phone 8.1中的MessageDialog Box?

来自分类Dev

更改MessageDialog内容或从MessageDialog处理程序Windows Store应用显示新内容

来自分类Dev

如何从Windows Phone 8.1中的代码中关闭MessageDialog

来自分类Dev

如何在QML中设置MessageDialog的默认按钮?

来自分类Dev

在Swift中捕获Objective-C异常

来自分类Dev

C ++在构造函数中捕获异常

来自分类Dev

无法从c ++中的函数捕获异常

来自分类Dev

在Haskell中捕获C ++ FFI异常失败

来自分类Dev

无法从c ++中的函数捕获异常

来自分类Dev

在Android NDK C ++代码中捕获异常

来自分类Dev

在混合C ++中捕获std异常和系统异常

来自分类Dev

如何在Windows 8应用程序中同步显示MessageDialog?

来自分类Dev

使用C#为Windows Phone 8.1使用MessageDialog关闭应用程序确认

来自分类Dev

非捕获组显示在 C# 中

来自分类Dev

如何从C ++中的构造函数中捕获异常

来自分类Dev

无法捕获C ++异常

来自分类Dev

根据C退出代码在ctypes中捕获异常

来自分类Dev

捕获C#中从Delphi DLL引发的异常

来自分类Dev

在C ++中,是否可以强迫用户捕获异常?

来自分类Dev

C#在调用堆栈中捕获未处理的异常

来自分类Dev

无法通过C ++中的引用捕获引发的异常

来自分类Dev

如何停止捕获C#中的特定异常

来自分类Dev

根据C退出代码在ctypes中捕获异常