- 245 名前:218 mailto:sage [2009/10/20(火) 05:59:18 ]
- >>236
あんたわかってないね。 VC++やBCCはSJISのソースコードでL""と書けばそれをコンパイラが自動的にワイド文字列に 変換するし(何の指定も必要なし)、MinGW gccだって -finput-charset=CP932 と指定すれば SJISでL""で書いた文字列リテラルをきちんとワイド文字列に変換する。 MinGW gccはたまたまデフォルトがUTF-8なだけ。そもそもUTF-8はWIN32 APIの 何たらW( )関数が要求するwchar_t*文字列(UTF-16LE)とはエンコーディングが 違う。dmcなんかはL""と書いても_T( )と書いても受け付けてくれないので、 \uを使って文字コードで書く必要があるんだよ(Digital Mars スレの261に これを解決する方法を書いた)。 要するにコンパイラ依存の問題なわけで、 > L""やTEXT(),_T()書いたからと言って、SJISでソースかいてりゃ文字列リテラルの中身はSJISだ。 > それをUnicodeですと言いはればそりゃコンパイラも怒るわ。 なんて単純な話じゃない。あんたUNICODEは一種類だと思ってるのか? Qt Creatorだって、VCでやれば、逆にソースコードをUTF-8で書いたらL""のコンパイル 通らなくなると思うよ(VCが頭良くて、自動変換する可能性はあるけど)。
|

|