• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:char型変数をLPCTSTR型に変換したい)

char型変数をLPCTSTR型に変換する方法は?

このQ&Aのポイント
  • 外部ファイルの文字列をchar型変数に取り込み、それをLPCTSTR型に変換する方法を教えてください。
  • 現在、char/THCARの変換が正しくできず困っています。開発環境はVisualStudio2010で、MFC作成(Unicode文字列)です。
  • wsprintf()で変換する時点で文字列がおかしくなってしまい困っています。マルチバイト文字列を使用しない解決方法はありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • unacyo
  • ベストアンサー率51% (35/68)
回答No.1

wsprintf()は入出力がワイド文字専用なので、入力にマルチバイトコードを渡しても正常に動きません。 おそらく、コード変換を意図しているものと思います。 コード変換で簡単なのは、setlocale()とmbstowcs()の組み合わせかと思います。 fscanf(); //中身省略 setlocale( LC_ALL, "ja_JP" ); mbstowcs( name_t, (const char *)name, strlen( name ) ); makedFunction( name_t ); mbstowcs()の仕様は、MSDN等を見てください。 他には、MultiByteToWideChar()というものもあり、同じ様なことができます。 ところで、なんでfscanfの第一パラメータが&fpなのでしょう? FILE* fp = fopen( "ファイル名", "r" )で読み込んでいるのであれば、fpはポインタですから、&は不要ですよね? (単に転載ミスだとは思いますが)

apollograffitti
質問者

お礼

ご回答ありがとうございます. おかげで変換し,目的を達成することが出来ました. fscanfの第一パラメータは自分の転載ミスです.

関連するQ&A