ページ 11

マルチバイト文字とUnicodeについて

Posted: 2013年6月26日(水) 00:44
by atori
何も考えずにVisualStudioでプログラムしていると、よく

"const charからLPWSTRに変換出来ません"

といったエラーが出ました。とりあえずプロパティからUnicode文字→マルチバイト文字に直せばよいと覚えていたのですが、
さすがに毎回毎回設定しているのが面倒になって来ました。
文字列の定義をchar型でするのではなく、LPTSTR型にするとプロパティをいじらなくてもエラーなく動くようになりました。

自分でやっといて何ですが、これはどうなのでしょうか?
LPTSTR型は#defineで定義されているので、LPTSTR型を多用するだけでもパフォーマンスが若干落ちるのでは・・・と思っています。
しかし、マルチバイトもUnicodeも対応出来ていると素敵なような気もします。

LPTSTR型を使うべきか、はたまたマルチバイト、もしくはUnicodeのどちらか一方だけでプログラムするべきなのか・・・。
どちらが良いでしょうか?

Re: マルチバイト文字とUnicodeについて

Posted: 2013年6月26日(水) 01:45
by Poco
atori さんが書きました:LPTSTR型は#defineで定義されているので、LPTSTR型を多用するだけでもパフォーマンスが若干落ちるのでは・・・と思っています。
マクロの展開はコンパイルの前処理として行われます。
なのでコンパイルで作成したモジュールのパフォーマンスに影響をおよぼすことは決してありません。

Re: マルチバイト文字とUnicodeについて

Posted: 2013年6月26日(水) 02:24
by atori
なんと、そうだったのですか・・・。
それでは、これからはLPTSTR型を使っていこうと思います。

私はもっと基礎からしっかり勉強したほうがいいのかもしれません。
ありがとうございました。

このトピックは閉じさせて頂きます。