ステップ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 デバッグコンソールに出力するには、次の手順に従います。
Kanzi Studio Quick Start ウィンドウで、New をクリックします。
使用可能なプロジェクトテンプレートのリストから Application アイテムを選択します。
プロジェクトの名前と場所を選択してください。
例えば、プロジェクトに名前を付ける際は、Hello world としてください。
Create をクリックします。
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 ソリューションを生成します。
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ファイルと構成ファイルを読み込みます。
Kanzi Studio で、File > Open Kanzi Command Prompt を選択します。
Kanzi Command Prompt は、Kanzi 環境変数が設定された Windows コマンドプロンプトを開き、Kanzi のバージョンに対して Kanzi Command Prompt を開きます。
Kanzi Command Prompt を使用すると、絶対パスを使用したり環境変数を設定したりせずに、Kanzi のユーティリティや、Gradle、CMake などのビルドツールにアクセスできます。
ヒント
Kanzi Command Prompt は、Rightware ディレクトリの Windows スタートメニューで見つけることができます。
Kanzi のバージョンが複数インストールされている場合は、そのコマンドプロンプトで作業したい Kanzi のバージョンに対応する Kanzi Command Prompt を起動するようにしてください。
<ProjectName>/Applicationディレクトリ内の Kanzi Command Prompt で、アプリケーション用の Visual Studio ソリューションを生成するスクリプトを実行します。generate_cmake_vs2022_solution.bat
このスクリプトは、
<ProjectName>/Application/build_vs2022ディレクトリにアプリケーション用の Visual Studio ソリューションを生成します。Visual Studioで、
Application/build_vs<Version>/<ProjectName>.slnVisual Studioソリューションを開きます。例えば、Kanzi Studio プロジェクトに Hello world という名前を付けた場合、Visual Studio ソリューションは
Hello_world.slnと呼ばれます。
ソリューションエクスプローラーで、Hello_world プロジェクトを右クリックし、Set as StartUp Project を選択します。
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
ロガーを使用して Kanzi デバッグコンソールに出力するには、
log.hppヘッダーファイルを含めます。#include <kanzi/core/log/log.hpp>
Application::onProjectLoadedの内容を以下のコードに置き換えてください。Application::onProjectLoadedの中に関数を配置すると、Kanzi がアプリケーションの読み込み後にその関数を呼び出します。void onProjectLoaded() override { // Prints Hello world! to the Kanzi debug console. kzLogInfo(KZ_LOG_CATEGORY_GENERIC, ("Hello world!")); }
使用したいソリューション構成を選択し、アプリケーションを実行します。
開発中は、Debug 構成を選択します。製品版を作成する準備ができたら、Release 構成を選択します。
log.hpp::kzLogInfo関数は、Kanzi デバッグコンソールに Hello world! を出力します。
アプリケーションをデバッグモードで実行すると、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;
}