c++ - 在 UNICODE 应用程序的 catch block 内将 char * 转换为 CString

标签 c++ unicode mfc try-catch

我在 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/

相关文章:

.net - 如何重新分发 .Net Framework

c++ - MFC DYNAMIC_DOWNCAST 与 dynamic_cast

c++ - 使用 istream 进行操作

c++ - 无法通过ODBC连接到SQL Server

javascript - JavaScript 中的 Unicode 组合

python - 如果 python unicode 对象被错误解码怎么办

c++ - 确保包含 config.h

c++ - MSVC 2008 Immediate Window 废话和一些代码困惑

java - 从文本读取 srt 文件时出现奇怪的字符

c++ - 多字节西里尔字母表