消息框中的 C++ 异常消息

c++ exception message in messagebox

看似简单却找不到解决办法

我想要这样的东西

catch (Exception^ ex)
{
    MessageBoxA(NULL, ex->ToString(),  "", MB_OK);
}

但是它说 Plattform::string ^ 与 LPCSTR 不兼容。

Platform::String 是 .NET class,这当然与旧的 char*.

不兼容

要解决此问题,您需要做两件事。

首先,将 Platform::String 转换为 wchar_t*,因为它是 unicode 字符串。使用方法Data()

其次,使用 MessageBoxW,因为我们使用的是 unicode,而不是 ANSI。

结果代码应如下所示:

MessageBoxW(NULL, ex->ToString()->Data(),  "", MB_OK);