dポイントプレゼントキャンペーン実施中!

最近、マイクロソフトの VC++ Ver.6を買いました。
 解説を読んで、文字コードのオプションとして、
_MBCS と  _UNICODE
があることを知りました。
 今までは、ボーランドの古いコンパイラを
使っていましたので、文字コードは ShiftJIS でした。
 皆さんは、どんなものを作るときに、
どちらのオプションを選んでいますか?
また、OS の現状からみて、どちらがお勧めですか?

A 回答 (2件)

通常は、指定してあるとすれば_MBCSでしょう。



なぜなら、UNICODE対応のWindowsAPIは、Win9x系には存在しないからです。
なので、9x系とNT系の両方に対応させようとすると、必然的にUNICODEは使用できません。

半角文字(MBCSの1バイト文字)と全角文字(MBCSの多バイト文字)の違いを意識する必要がなく、
Win2000やWinXPのみ動作対象とするアプリを作成するのであれば、UNICODEにしたほうが動作が
速くなるはずなのでいいのではないでしょうか?

ちなみに、_MBCS、_UNICODEの指定で定義が変わるのは、ほとんどがTCHAR.Hの内容です。
興味があれば覗いてみてください。
それぞれの定義によって、_tが先頭についている関数がどのように置き換えられるかがわかります。


また、UNICODE対応のAPIを使用するには、_UNICODEだけではなく、
UNICODEも#define等で指定する必要があります。
    • good
    • 0
この回答へのお礼

NT を使っているせいか、
いつの間にか UNICODE
になってしまっていて、何か変だったのです。

TCHAR.Hの内容です。
興味があれば覗いてみてください。
それぞれの定義によって、_tが先頭についている関数がどのように置き換えられるかがわかります。

これについては、マニュアルを読みましたので分かりました。
参考にしている ソースファイルが L("abn.txt")
のような表現を含んでいるので、
ユニコードをやめると問題が起こるかもしれませんが
SJIS でやってみます。

ありがとうございました。

お礼日時:2002/08/29 16:50

普通にVC++を使う文にはSJISを使用します。


UNICODEを使えば将来性はあがるかもしれませんが
古いライブラリを使う場合にUNICODEだとエラーを
起こす危険があります。

OSという観点からはWindowsは内部処理を全て
UNICODEでおこなっているのでUNICODEの方が
処理速度的には速いのかもしれません。
たいていのWin32APIはSJIS用とUNICODE用がそれぞれが用意されています。
今はSJIS→UNICODEの過渡期といったところでしょうか。
    • good
    • 0
この回答へのお礼

 ありがとうございます。
エディタを作ってみたら
それが、他のワープロで読めなかったので
びっくりしました。
SJIS
を使うようにします。

お礼日時:2002/08/29 16:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!