char*からwchar*に変換するには?

解決


背黒鶺鴒  2011-01-15 21:54:58  No: 72182  IP: [192.*.*.*]

はじめまして。
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;
  }

編集 削除
ryo  2011-01-15 23:39:19  No: 72183  IP: [192.*.*.*]

http://msdn.microsoft.com/ja-jp/library/39cwe7zf(v=VS.100).aspx
より
>日本語  "japanese" または "jpn" 

setlocateの第2引数をこれにしてみてください

編集 削除
ryo  2011-01-15 23:40:21  No: 72184  IP: [192.*.*.*]

>setlocateの第2引数をこれにしてみてください
setlocale 
スペル間違えた>_<  インテリセンスに頼りすぎだわ

編集 削除
επιστημη  URL  2011-01-16 09:02:31  No: 72185  IP: [192.*.*.*]

ついでに:

> if( length == -1 ) return NULL;

if ( length == -1 ) {
  delete[] wc;
  wc = 0;
}

編集 削除
背黒鶺鴒  2011-01-19 22:59:46  No: 72186  IP: [192.*.*.*]

解決しました。ryoさん、επιστημηさんありがとうございました。

編集 削除