我在 MFC 应用程序中有这段代码:
catch(cv::Exception &ex)
{
USES_CONVERSION;
MessageBox(A2T(ex.what()), _TEXT("Error"), MB_ICONERROR);
}
但是我收到了这个错误:
error C3204: '_alloca' cannot be called from within a catch block
如何解决这个错误?
将 const char * 转换为 CString 的原始解决方案来 self 在互联网上的搜索,但我找不到任何关于如何在 catch block 内执行此操作的信息。
最佳答案
移除USES_CONVERSION
更改:MessageBox(A2T(ex.what()), _TEXT("Error"), MB_ICONERROR);
收件人:MessageBoxA(ex.what(), "Error", MB_ICONERROR);
请注意 MessageBoxA
末尾的额外“A”。
关于c++ - 在 UNICODE 应用程序的 catch block 内将 char * 转换为 CString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28941760/