在 UNICODE 应用程序的 catch 块内将 char * 转换为 CString
Converting char * to CString inside a catch block in a UNICODE application
我在 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 的原始解决方案来自我在互联网上的搜索,但我找不到任何关于如何在 catch 块中执行此操作的信息。
尝试在 catch 块中使用 _resetstkoflw。
删除USES_CONVERSION
变化:MessageBox(A2T(ex.what()), _TEXT("Error"), MB_ICONERROR);
收件人:MessageBoxA(ex.what(), "Error", MB_ICONERROR);
注意 MessageBoxA
末尾的额外 'A'。
我在 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 的原始解决方案来自我在互联网上的搜索,但我找不到任何关于如何在 catch 块中执行此操作的信息。
尝试在 catch 块中使用 _resetstkoflw。
删除USES_CONVERSION
变化:MessageBox(A2T(ex.what()), _TEXT("Error"), MB_ICONERROR);
收件人:MessageBoxA(ex.what(), "Error", MB_ICONERROR);
注意 MessageBoxA
末尾的额外 'A'。