W10 Class



Windows10 で Object Class を使います。

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

プロジェクトの作成

  1. Windows ストアアプリの C++ が従来の .NET Framework のものではなく、新しい WinRT というAPIを利用しています。
    従って Windows7 以前の API とは何かと様子が違うようです。
    Windows10 & Visual Studio Community 2015 の環境で Object Class を使って最大公約数(GCM)を計算してみます。
  2. Visual Studio Community 2015 を起動します。
    [ファイル][新規作成][プロジェクト][Visual C++]から[空白のアプリ(ユニバーサル Windows)]を選びます。
    名前は規定値のまま App1(App1 が使われていると App2)にします。
  3. ページ先頭の画像を参照して TextBox と Button を貼り付けて下さい。
    Tool の設定は Visual Studio Tool を参照して下さい。
  4. TextBox とボタンを次のように設定します。
    コントロール 名前 説明
    TextBox data1 入力データ1
    TextBox data2 入力データ2
    TextBox gcm GCMを表示
    Button Button_Click Event Handler
  5. プロジェクトのフォルダに GcmClass のソースファイルを格納します。
    ソリューションエクスプローラから App1 を選択して、右クリックから[追加][新しい項目]から[Visual C++][コード]を選びヘッダーファイル(.h)から GcmClass.h を作成します。
    GcmClass.h のソースコードを、このページからコピー&ペーストして下さい。
  6. GcmClass.h です。
    namespace App1 の "App1" はプロジェクトを生成したときの名前です。
    MainPage.xaml.cpp の namespace と合わせて下さい。
    #pragma once
    /* GCM class  Header File    前田 稔 */
    namespace App1
    {
        ref class GcmClass
        {
          private:
            int     w1, w2;
          public:
            int gcm(int v1, int v2);
        };
    }
    
  7. ソリューションエクスプローラから App1 を選択して、右クリックから[追加][新しい項目]から[Visual C++][コード]を選び C++ ファイル(.cpp)から GcmClass.cpp を作成します。
    GcmClass.cpp のソースコードをコピー&ペーストして下さい。
  8. GcmClass.cpp です。
    /* GCM class    前田 稔 */
    #include "pch.h"
    #include "GcmClass.h"
    namespace App1
    {
        int GcmClass::gcm(int v1, int v2)
        {
            w1= v1;
            w2= v2;
            while(w1 != w2)
            {   if (w1 > w2)    w1-= w2;
                else            w2-= w1;
            }
            return w1;
        }
    }
    
  9. Button_Click() 関数では GcmClass を参照します。
    MainPage.xaml.cpp の先頭に "GcmClass.h" を追加して下さい。
    #include "GcmClass.h"
    
  10. Button_Click() 関数です。
    TextBox にタイプされたデータは String タイプなので int に変換して計算します。
    Parse メソッドが使えないので WCHAR から int に変換する _wtoi() を使います。
    また GcmClass の生成は gcnew では無く ref new GcmClass() を使います。
    gcmcls->gcm() で GCM を計算して TextBox に表示します。
    void App1::MainPage::Button_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
    {
        int  d1,d2;
        GcmClass^  gcmcls;
        d1= _wtoi(data1->Text->Data());
        d2= _wtoi(data2->Text->Data());
        gcmcls = ref new GcmClass();
        gcm->Text= gcmcls->gcm(d1, d2).ToString();
    }
    
  11. data1 と data2 の TextBox に適当な数値をタイプして、Button をクリックして下さい。
    data1 と data2 の最大公約数が計算されて gcm に表示されます。
    Windows 8.1 Class で同様のプロジェクトを作成しています。

[Previous Chapter ↑] Windows8.1 Class

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