我目前正在使用 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] 删除。
我来说两句