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