CString でコード変換

CString Class でマルチバイトからワイドキャラクタに変換します。

前田稔の超初心者のプログラム入門

プログラムの説明

  1. ソースプログラムです。
    ファイル名 説明
    convert.cpp CString でコード変換
  2. MFC(Microsoft Foundation Class) のプログラムは、服の上から痒い所をかいているようで私の性に合わないのですが、 CString Class だけは使えると便利だなと思っていました。
    特にマルチバイトとワイドキャラクタの両方を使うときに威力を発揮し、単に代入するだけで自動的に変換を行ってくれます。
  3. CString Class を使うときは cstringt.h と atlstr.h を取り込みます。
    stdio.h は結果を表示するために、conio.h は _getch() で表示を確認するために取り込んでいます。
        #include <stdio.h>
        #include <conio.h>
        #include <cstringt.h>
        #include <atlstr.h>
        
  4. 文字列領域の定義です。
    str[] は従来の文字列(文字の配列)です。
    s1 は char型の文字列です。
    s2 は wchar_t型の文字列です。
    s3 は WideChar と MultiByte の両方が使える型の文字列です。
        char    str[] = "123ABC";
        CStringT <char, StrTraitATL<char, ChTraitsCRT<char>>> s1;
        CStringT <wchar_t, StrTraitATL<wchar_t, ChTraitsCRT<wchar_t>>> s2;
        CStringT <TCHAR, StrTraitATL<TCHAR, ChTraitsCRT<TCHAR>>> s3";
        
  5. str[] の文字列を s1, s2, s3 に代入して表示します。
    s2 は wchar_t型なのでコードの変換が必要なのですが、自動的に行ってくれます。
    また s2 の表示には wprintf() を使います。
        printf("%s\n",str);
        s1 = str;
        printf("%s\n",s1);
        s2 = str;
        wprintf(L"%s\n",s2);
        s3 = str;
        printf("%s\n",s3);
        

超初心者のプログラム入門(C/C++)