C++ クラス インターフェイス コントロールのサポート
この節では、カスタムの組み込みターゲットを設定して C++ クラス インターフェイス コントロールをサポートする方法を説明します。説明されている変更を行わないと、[C++ クラス]
のコード インターフェイスのパッケージ化を使用してモデル コードへの C++ クラス インターフェイスの生成および構成を実行できません。C++ クラス インターフェイス コントロールの詳細については、Interactively Configure C++ Interfaceを参照してください。
C++ クラス インターフェイス コントロールとカスタム ターゲットについて
C++ クラス インターフェイス コントロールをサポートするための要件を次に示します。
ターゲットは ERT システム ターゲット ファイルから派生しなければなりません。
C++ クラス インターフェイス コントロール準拠の宣言に示すように、システム ターゲット ファイルは C++ クラス インターフェイス コントロール準拠を宣言しなければなりません。
カスタム ターゲットのオプション機能を設定する方法の例については、システム ターゲット ファイルのカスタマイズを参照してください。
C++ クラス インターフェイス コントロール準拠の宣言
ターゲットの C++ クラス インターフェイス コントロール準拠を宣言するには、CPPClassGenCompliant
フラグを設定するコールバック関数を実装して、システム ターゲット ファイルの rtwgensettings
構造体の SelectCallback
フィールドにコールバック関数をインストールしなければなりません。コールバック関数は、システム ターゲット ファイル ブラウザーでターゲットが選択されるたびにトリガーされます。たとえば、次のシステム ターゲット ファイル コードは、custom_select_callback_handler
という名前の関数 SelectCallback
をインストールします。
rtwgensettings.SelectCallback = 'custom_select_callback_handler(hDlg,hSrc)';
関数 SelectCallback
への引数 (hDlg
、hSrc
) は、コールバック API 関数によって使用されるプライベート データのハンドルです。これらのハンドルは、システム ターゲット ファイル コールバック関数内での使用に制限され、変更されることなく渡されます。
コールバック関数は、次に示すように CPPClassGenCompliant
フラグを設定しなければなりません。
slConfigUISetVal(hDlg,hSrc,'CPPClassGenCompliant','on'); slConfigUISetEnabled(hDlg,hSrc,'CPPClassGenCompliant',false); hSrc.getConfigSet.refreshDialog;
システム ターゲット ファイル コールバック API の詳細については、関数 slConfigUIGetVal
、slConfigUISetEnabled
および slConfigUISetVal
のリファレンス ページを参照してください。
ターゲット コンフィギュレーション パラメーター CPPClassGenCompliant
が on
に設定されている場合、[C++ クラス]
のコード インターフェイスのパッケージ化を使用してモデル コードへの C++ クラス インターフェイスの生成および構成を実行できます。
カスタムの静的メイン プログラムでの C++ クラス インターフェイス コントロールのサポートの提供
モデルの [C++ クラス]
コード インターフェイスのパッケージ化を選択すると、モデル コンフィギュレーション パラメーター [メイン プログラム例の生成] が有効になります。このパラメーターを選択する場合、コード ジェネレーターはメイン プログラムの例 ert_main.cpp
を作成します。生成された例のメイン プログラムは、モデル データを宣言して C++ クラス インターフェイスで構成されたモデル ステップ メソッドを呼び出し、生成コードの展開方法を示します。
ビルド プロセスをカスタマイズし、例のメイン プログラムの生成と追加を無効にする場合は、関数 setTargetProvidesMain
を参照してください。例のメイン生成を無効にすると、カスタムのメイン プログラムを追加できるようになります。