-1
シンプルだが解決策が見つからない。メッセージボックスのC++例外メッセージ
私はこの
catch (Exception^ ex)
{
MessageBoxA(NULL, ex->ToString(), "", MB_OK);
}
のような何かをしたい。しかし、それはPlattform :: stringはLPCSTRと互換性がありません^言います。
シンプルだが解決策が見つからない。メッセージボックスのC++例外メッセージ
私はこの
catch (Exception^ ex)
{
MessageBoxA(NULL, ex->ToString(), "", MB_OK);
}
のような何かをしたい。しかし、それはPlattform :: stringはLPCSTRと互換性がありません^言います。
Platform :: Stringは.NETクラスです。これはもちろん、古いバージョンのchar*
と互換性がありません。
これを修正するには2つのことが必要です。
最初に、ユニコード文字列であるため、Platform::String
をwchar_t*
に変換してください。使用方法Data()
次に、ANSIではなくユニコードで作業しているので、MessageBoxWを使用してください。
結果のコードは次のようになります。
MessageBoxW(NULL, ex->ToString()->Data(), "", MB_OK);
おかげで、これは働いていました。 (MessageBoxW(NULL、ex-> ToString() - > Data()、NULL、MB_OK);を使用してください) – Johannes
このQ + Aでは、何かがひどく間違っていました。 .NETクラス。 WinRTタイプのHSTRINGの言語投影です。体内の管理された骨ではありません。 WinRTをターゲットとするアプリケーションでMessageBox()を使用すると、Windows :: UI :: Popups :: MessageDialogが代わりに使用されます。 –
大したことではありません(@HansPassantはすでに指摘しているように、**これは答えではありません)。しかし、 '' ''を '' MessageBoxW''に渡すことはできません。 – IInspectable