none
Visual Studio 2005でのCソースコードの文字化け RRS feed

回答

  • 文字コード指定の問題ですね。

    VS2005 は標準で UNICODE 文字セットが指定されていますが、VC6は標準ではANSI文字セット(日本語版ならMBCS)が指定されています。
    おそらくそれが原因でしょう。

    サンプルはWindowsようなので、文字列を _T("文字列") という風に_T(...)とくくってあげることで、解決できます。
    具体的には
    TextOut( hdc, 10, 30, _T("使用例 sample"), 13 );
    という感じです。

    参考にしているサイトはちょっと古い(VC6ベースなので)ので載っていないようですが、文字コードの問題はあちこちで話題にされているので、ひと段落したら調べてみるとよいと思います。

    今は(やってるサンプルが終わるまでは)、文字列は_T()で囲っておくとだけ覚えておいてもらえばいいです。
    最初はお呪い(おまじない)でも、いずれその呪い(のろい)を解く手段は探せるようになるはずですから。


    わんくま同盟,Microsoft MVP for Visual C++(Oct 2005-) http://blogs.wankuma.com/tocchann/
    2009年6月12日 2:41
  • もしtcharの問題なら、コンパイルエラーか警告が出るはずですけど。

    質問者の方が、ただコンパイルが通ることだけを考えてソースコードを書き換えている可能性はありますね。
    そしてその行為が文字化けを引き起こした、と。
    2009年6月12日 9:34
  • ここのフォーラムでも時折見かけますが、型が違うとか言われてキャストしてる可能性が高いと思います。

    ちょっとヘルプを引けばわかることかもしれませんが、足掛かりない状態(いまだにろくな資料がないのが現実)を考えれば、一人でやってればはまるポイントの一つですからね。


    わんくま同盟,Microsoft MVP for Visual C++(Oct 2005-) http://blogs.wankuma.com/tocchann/
    2009年6月12日 9:38

すべての返信

  • 文字コード指定の問題ですね。

    VS2005 は標準で UNICODE 文字セットが指定されていますが、VC6は標準ではANSI文字セット(日本語版ならMBCS)が指定されています。
    おそらくそれが原因でしょう。

    サンプルはWindowsようなので、文字列を _T("文字列") という風に_T(...)とくくってあげることで、解決できます。
    具体的には
    TextOut( hdc, 10, 30, _T("使用例 sample"), 13 );
    という感じです。

    参考にしているサイトはちょっと古い(VC6ベースなので)ので載っていないようですが、文字コードの問題はあちこちで話題にされているので、ひと段落したら調べてみるとよいと思います。

    今は(やってるサンプルが終わるまでは)、文字列は_T()で囲っておくとだけ覚えておいてもらえばいいです。
    最初はお呪い(おまじない)でも、いずれその呪い(のろい)を解く手段は探せるようになるはずですから。


    わんくま同盟,Microsoft MVP for Visual C++(Oct 2005-) http://blogs.wankuma.com/tocchann/
    2009年6月12日 2:41
  • もしtcharの問題なら、コンパイルエラーか警告が出るはずですけど。

    質問者の方が、ただコンパイルが通ることだけを考えてソースコードを書き換えている可能性はありますね。
    そしてその行為が文字化けを引き起こした、と。
    2009年6月12日 9:34
  • ここのフォーラムでも時折見かけますが、型が違うとか言われてキャストしてる可能性が高いと思います。

    ちょっとヘルプを引けばわかることかもしれませんが、足掛かりない状態(いまだにろくな資料がないのが現実)を考えれば、一人でやってればはまるポイントの一つですからね。


    わんくま同盟,Microsoft MVP for Visual C++(Oct 2005-) http://blogs.wankuma.com/tocchann/
    2009年6月12日 9:38
  • こんにちは、フォーラムオペレータの高橋春樹です。

    とっちゃんさん、佐祐理さん
    いつもお世話になってます。

    clematis0401さん、はじめまして。
    MSDNフォーラムのご利用ありがとうございます。

    皆さんからアドバイスがあったと思うのですが、如何ですか?
    とっちゃんさんのアドバイスにある"_T()"は試して頂けましたか?
    もし解決していないときは、今の状況を投稿して頂くと
    新たな情報を得られるかもしれません(^-^)

    今回とっちゃんさん、佐祐理さんからのアドバイスに
    回答マークを付けさせてもらいました。

    問題がまだ解決していない、もしくは不適切と思ったら
    回答マークを外す事も出来ますので、そのときはよろしくお願いします。


    マイクロソフト株式会社 フォーラム オペレータ 高橋春樹
    2009年6月23日 2:58