1

这里的效果是消息文本在希腊字母中是正确的,但消息标题都是空框,有时与其他文本有中文字符。

string msg= "ένα μήνυμα";
MessageBoxW(null, "ένα μήνυμα", cast(wchar*)msg.toStringz, MB_ICONERROR);

在此处输入图像描述

4

1 回答 1

4

在将 a 转换为 a而不是强制转换时,您需要使用toUTF16z(from std.utf) :stringLPCWSTR

MessageBoxW(null, "ένα μήνυμα", toUTF16z(msg), MB_ICONERROR);

您不需要对字符串文字做任何事情,因为编译器会通过查看MessageBoxW的参数类型自动创建一个 UTF-16 常量。

于 2013-01-28T12:57:33.880 回答