はじめまして。
DrawText();で、string型の変数を引数に使いたかったので変換しようと考え次のように書いたのですが、漢字の部分だけ?????で表示されてしまいます。
ウォッチを見てみると、cのところまでは、漢字が漢字のまま格納されて
いるのですが、wcのところになると文字化けを起こしてしまいます。
どうすればいいのでしょうか?
scene[i] = "aaaaaa漢字";
screen[i] = scene[i];
DrawText(hdc,string_to_widechar(screen[i]),-1,&(position.getstringrt()),DT_WORDBREAK);
wchar_t* string_to_widechar(std::string chstring){
setlocale( LC_ALL, "ja" );
const char* c = chstring.c_str();
size_t length = strlen( c );
wchar_t* wc = new wchar_t[ length+1 ];
length = mbstowcs( wc, c, length+1 );
if( length == -1 ) return NULL;
return wc;
}
http://msdn.microsoft.com/ja-jp/library/39cwe7zf(v=VS.100).aspx
より
>日本語 "japanese" または "jpn"
setlocateの第2引数をこれにしてみてください
>setlocateの第2引数をこれにしてみてください
setlocale
スペル間違えた>_< インテリセンスに頼りすぎだわ
ついでに:
> if( length == -1 ) return NULL;
if ( length == -1 ) {
delete[] wc;
wc = 0;
}
解決しました。ryoさん、επιστημηさんありがとうございました。
編集 削除