Visual Studio DebugString

Windows10 & Visual Studio で DebugString のテストです。

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

プログラムの説明

  1. Store Application の C++ Windows プロジェクト UWP(Universal Windows Platform) を作成します。
    Visual Studio 2019 を立ち上げて[ファイル][新規作成][プロジェクト]を開き、[新しいプロジェクトの作成]を選択します。

  2. [Blank App(Universal Windows - C++/CX)]を選択して下さい。
    一覧に表示されない場合は、ウインドウ下部の「探しているものが見つからない場合さらにツールと機能をインストールする」を選択します。

  3. 右三角矢印(または F5 キー)でコンパイル&実行すると空のウインドウが表示されます。

  4. ストア・アプリのプログラムは、ビルド&実行するとスタートメニューに登録されます。
    残しておく必要がなければ、右クリックからアンインストールして下さい。

OutputDebugString

  1. OutputDebugString() を使ってデバッグ情報を印字してみましょう。
    OutputDebugString() を使うときは windows.h を #include して下さい。
    Platform::Array は Store Application の配列ですが、C#の ArrayList と違い非力です。
    ary = ref new Array<int>(5); で5個の要素を確保して0~4の値を格納します。
    OutputDebugString() で ary の値を出力ウインドウに印字します。
    Platform::Array にはこの程度の機能しかなく、手に余るときは STL の vector を使います。
    STL の説明は 超初心者のプログラム入門(C/C++) から「STL(Standard Template Library)」を参照して下さい。
  2. MainPage.xaml.cpp のソースコードです。
    #include <windows.h>    // OutputDebugString
    
    MainPage::MainPage()
    {
        int i, wk;
        InitializeComponent();
        Platform::Array<int>^ ary = ref new Array<int>(5);
        for (i = 0; i < 5; i++)     ary[i] = i;
        OutputDebugString(L"\n*Start Array Data\n");
        for (i = 0; i < 5; i++)
        {   wk = ary[i];
            OutputDebugString(wk.ToString()->Data());
        }
        OutputDebugString(L"\n*End Array Data\n");
    }
    
  3. 右三角矢印(または F5 キー)でコンパイル&実行すると出力ウインドウに次のメッセージが印字されます。
    出力ウインドウには沢山のメッセージが印字されているので *Start を手掛かりに探して下さい。
    *Start Array Data
    01245
    End Array Data
    
  4. C# でデバッグ情報を印字するときは Debug.Write() 関数 Title Bar を使います。
        Debug.WriteLine("\n**現在の時刻:" + DateTime.Now.ToString());
    

Console Mode でエラー

2019/03/04 VS-2019-00435 の [C++ コンソールアプリ]"Hello World" でプログラムすると、次の行がエラーになります。
    Platform::Array<int>^ ary = ref new Array<int>(5);
Console Mode では Platform::Array が使えないのでしょうか?
[Blank App(Universal Windows - C++/CX)] と [C++ コンソールアプリ]"Hello World" は、どちらも Windows10 & VS-2019 で作成したものです。
Windows と Console の違いはあっても両者の API は同じだと思っていたのですが、どこかに違いがあるようです。 (^_^;)

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