在 UNICODE 应用程序中将 char * 转换为 catch 块内的 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 块中执行此操作的信息。
删除USES_CONVERSION
更改: MessageBox(A2T(ex.what()), _TEXT("Error"), MB_ICONERROR);
收件人: MessageBoxA(ex.what(), "Error", MB_ICONERROR);
请注意MessageBoxA
末尾的额外"A"。
尝试在 catch 块中使用 _resetstkoflw。
相关文章:
- 为什么catch中的代码没有被执行
- 在C++中使用Cstring反转字符串
- catch框架有没有办法比较流或文件
- 从 Rcpp Catch 测试中获取有关"inst/extdata"的数据
- 如何转换真实路径 CString c++
- 在C++中使用 Catch 测试框架编译错误"error: expected ';' at end of declaration list"
- 编译器是否必须始终删除 try-catch 块(如果它被证明是非抛出的)
- 有没有更好的方法来处理异常? try-catch块真的很丑
- 不能将重载比较运算符与 Catch 测试一起使用
- __int64 CString 返回错误的值 - C++ MFC
- 如何将 SHFileOperation() 与 CString 路径一起使用
- 在_T值中使用 CString
- 没有大小参数的CString::GetBuffer()做什么
- #pragma 警告不适用于 catch 语句
- 如何将 CString 转换为字节 [] 数组?
- 可视化 如何将 CString 值列表添加到 MFC C++ 中的组合框中?
- C++从 std::string 创建 CString 失败
- 我可以使用 try catch 语句来捕获任何错误而不是具体错误吗?
- 对树节点使用 CString 时出现内存泄漏
- 在 UNICODE 应用程序中将 char * 转换为 catch 块内的 CString