ステップ1 - C++アプリケーションでプロジェクトを作成し、デバッグコンソールに出力する

このステップでは、まず Kanzi Studio プロジェクトをC++アプリケーションで作成します。次に、C++アプリケーションにコードを追加して、Kanzi デバッグコンソールに「Hello world!」を出力します。

チュートリアルを入手する

チュートリアルを入手するには、Kanzi Studio Quick Start ウィンドウで Projects をクリックし、Tutorials タブを選択します。Hello world チュートリアルの横にある ダウンロード をクリックします。

Kanzi Studio はチュートリアルを <KanziWorkspace>/Tutorials ディレクトリにダウンロードします。完成したチュートリアルは <KanziWorkspace>/Tutorials/Hello world/Completed ディレクトリにあります。

C++アプリケーションでプロジェクトを作成し、デバッグコンソールに出力する

C++アプリケーションを使用してプロジェクトを作成し、Kanzi デバッグコンソールに出力するには、次の手順に従います。

  1. Kanzi Studio Quick Start ウィンドウで、New をクリックします。

    1. 使用可能なプロジェクトテンプレートのリストから Application アイテムを選択します。

    2. プロジェクトの名前と場所を選択してください。

      例えば、プロジェクトに名前を付ける際は、Hello world としてください。

    Create をクリックします。

    ../../_images/create-new-project-with-cpp-application.png

    Kanzi は <ProjectName>/Tool_project ディレクトリに Kanzi Studio プロジェクトを作成し、<ProjectName>/Application ディレクトリにプロジェクトのアプリケーションコードの構造を作成します。

    • bin ディレクトリには、プロジェクトの kzb ファイルと設定ファイルが含まれています。

    • configs ディレクトリには、さまざまなプラットフォーム用の構成ファイルが含まれています。デフォルトで、Kanzi はいくつかの異なるプラットフォーム用の構成ファイルを作成します。Kanzi アプリケーションの開発に推奨されるプラットフォームは Microsoft Visual Studio です。Kanzi アプリケーションのデプロイ を参照してください。

    • src ディレクトリには、アプリケーションのソースコードが含まれています。

    • CMakeLists.txt ファイルには、CMake が Kanzi アプリケーションの Visual Studio ソリューションを生成するための手順が含まれています。

    • generate_cmake_vs<Version>_solution.bat は、Kanzi アプリケーションのために Visual Studio ソリューションを生成するために使用できるスクリプトです。スクリプトは、<ProjectName>/Application/build_vs<Version> ディレクトリに Visual Studio ソリューションを生成します。

  2. Kanzi Studio で、File > Export > Export KZB を選択します。

    Kanzi Studio は、Kanzi Studio プロジェクトから kzb ファイルと構成ファイルを作成します。Kanzi Studio は、エクスポートされたファイルを <ProjectName>/Application/bin ディレクトリ、または Project > Properties の Binary Export Directory プロパティで設定した場所に保存します。kzb ファイルには、ローカライゼーションテーブルでロケールパックとしてマークしたリソースを除き、Kanzi Studio プロジェクトのすべてのノードとリソースが含まれています。

    Visual Studioから Kanzi アプリケーションを実行すると、アプリケーションはkzbファイルと構成ファイルを読み込みます。

    ../../_images/export-kzb-binary.png
  3. Kanzi Studio で、File > Open Kanzi Command Prompt を選択します。

    Kanzi Command Prompt は、Kanzi 環境変数が設定された Windows コマンドプロンプトを開き、Kanzi のバージョンに対して Kanzi Command Prompt を開きます。

    Kanzi Command Prompt を使用すると、絶対パスを使用したり環境変数を設定したりせずに、Kanzi のユーティリティや、Gradle、CMake などのビルドツールにアクセスできます。

    ../../_images/open-kanzi-command-prompt.png

    ヒント

    Kanzi Command Prompt は、Rightware ディレクトリの Windows スタートメニューで見つけることができます。

    Kanzi のバージョンが複数インストールされている場合は、そのコマンドプロンプトで作業したい Kanzi のバージョンに対応する Kanzi Command Prompt を起動するようにしてください。

  4. <ProjectName>/Application ディレクトリ内の Kanzi Command Prompt で、アプリケーション用の Visual Studio ソリューションを生成するスクリプトを実行します。

    generate_cmake_vs2022_solution.bat
    

    このスクリプトは、<ProjectName>/Application/build_vs2022 ディレクトリにアプリケーション用の Visual Studio ソリューションを生成します。

  5. Visual Studioで、Application/build_vs<Version>/<ProjectName>.sln Visual Studioソリューションを開きます。

    例えば、Kanzi Studio プロジェクトに Hello world という名前を付けた場合、Visual Studio ソリューションは Hello_world.sln と呼ばれます。

    ../../_images/hello-world-project-contents.png
  6. ソリューションエクスプローラーで、Hello_world プロジェクトを右クリックし、Set as StartUp Project を選択します。

    ../../_images/visual-studio-set-as-startup-project8.png
  7. hello_world.cpp ファイルを開きます。

    デフォルトで、テンプレートは他の Kanzi ヘッダーとコードビハインド識別子を含む kanzi.hpp ヘッダーファイルを追加します。このチュートリアルでは、コードビハインドを使用しません。

    このアプリケーションクラスは、必要なモジュールの登録を処理することにより、アプリケーション開発を簡素化する ExampleApplication クラスを使用します。

    #include <kanzi/kanzi.hpp>
    
    // [CodeBehind libs inclusion]. Do not remove this identifier.
    
    #if defined(HELLO_WORLD_CODE_BEHIND_API) && !defined(ANDROID) && !defined(KANZI_CORE_API_IMPORT)
    #include <Hello_world_code_behind_module.hpp>
    #endif
    
    using namespace kanzi;
    
    class HelloWorld : public ExampleApplication
    
  8. ロガーを使用して Kanzi デバッグコンソールに出力するには、log.hpp ヘッダーファイルを含めます。

    #include <kanzi/core/log/log.hpp>
    
  9. Application::onProjectLoaded の内容を以下のコードに置き換えてください。

    Application::onProjectLoaded の中に関数を配置すると、Kanzi がアプリケーションの読み込み後にその関数を呼び出します。

    void onProjectLoaded() override
    {
        // Prints Hello world! to the Kanzi debug console.
        kzLogInfo(KZ_LOG_CATEGORY_GENERIC, ("Hello world!"));
    }
    
  10. 使用したいソリューション構成を選択し、アプリケーションを実行します。

    開発中は、Debug 構成を選択します。製品版を作成する準備ができたら、Release 構成を選択します。

    ../../_images/debug-configuration.png

    log.hpp::kzLogInfo 関数は、Kanzi デバッグコンソールに Hello world! を出力します。

    ../../_images/kanzi-debug-console.png

    アプリケーションをデバッグモードで実行すると、Kanzi がデバッグコンソールを表示します。デフォルトで、Kanzi Studio プロジェクトにはエンプティシーンが含まれています。

このステップを完了すると、hello_world.cpp はこのようになります。

#include <kanzi/kanzi.hpp>
#include <kanzi/core/log/log.hpp>

// [CodeBehind libs inclusion]. Do not remove this identifier.

#if defined(HELLO_WORLD_CODE_BEHIND_API) && !defined(ANDROID) && !defined(KANZI_CORE_API_IMPORT)
#include <Hello_world_code_behind_module.hpp>
#endif

using namespace kanzi;

class HelloWorld : public ExampleApplication
{
public:

   void onConfigure(ApplicationProperties& configuration) override
   {
      configuration.binaryName = "hello_world.kzb.cfg";
   }

   void onProjectLoaded() override
   {
      // Prints Hello world! to the Kanzi debug console.
      kzLogInfo(KZ_LOG_CATEGORY_GENERIC, ("Hello world!"));
   }

   void registerMetadataOverride(ObjectFactory& factory) override
   {
      ExampleApplication::registerMetadataOverride(factory);

#if defined(HELLO_WORLD_CODE_BEHIND_API) && !defined(ANDROID) && !defined(KANZI_CORE_API_IMPORT)
      HelloWorldCodeBehindModule::registerModule(getDomain());
#endif

      // [CodeBehind module inclusion]. Do not remove this identifier.
   }
};

Application* createApplication()
{
   return new HelloWorld;
}

関連項目

Kanzi Engine C++ API リファレンス