这里的效果是消息文本是正确的希腊字母,但消息标题都是空框,有时与其他文本有中文字符。
string msg= "ένα μήνυμα";
MessageBoxW(null, "ένα μήνυμα", cast(wchar*)msg.toStringz, MB_ICONERROR);
最佳答案
在将atoUTF16z
转换为astd.utf
而不是cast时,需要使用string
(fromLPCWSTR
):
MessageBoxW(null, "ένα μήνυμα", toUTF16z(msg), MB_ICONERROR);
不需要对字符串文字做任何操作,因为编译器通过查看
MessageBoxW
的参数类型自动创建一个utf-16常量。