Main Content

インプロセスまたはアウトプロセスでの C++ ライブラリの読み込み

アウトプロセスの C++ ライブラリの読み込み

MATLAB® は C++ 関数を別のプロセスで実行できます。個別のプロセスで実行すると、以下が可能になります。

  • コードで MATLAB と競合するサードパーティ ライブラリを使用する。

  • パブリッシャーはインターフェイスの開発時にこのモードを使用できます。これにより、テスト中に MATLAB を再起動する必要がなくなります。

  • C++ ライブラリ コードでのクラッシュから MATLAB プロセスを分離する。

アウトプロセスで実行するには、関数 clibPublishInterfaceWorkflow で作成されたワークフロー スクリプトで [Enable out-of-process execution mode] セクションを実行します。あるいは、コマンド ラインから、"ExecutionMode" 引数を "outofprocess" に設定して関数 clibConfiguration を呼び出します。

アウトプロセスの C++ ライブラリのアンロード

関数 clibPublishInterfaceWorkflow で作成されたワークフロー スクリプトで [Enable out-of-process execution mode] セクションを実行した場合、[Unload out-of-process library] セクションを実行して C++ ライブラリをアンロードできます。

あるいは、MATLAB インターフェイスで unload を呼び出します。たとえば、school C++ ライブラリへのインターフェイス schoolInterface.dll をビルドし、そのインターフェイスを読み込んでアウトプロセス実行に設定したものとします。確認するために、以下を入力します。

configObj = clibConfiguration("school")
configObj = 
  CLibraryConfiguration for school with properties:
    InterfaceLibraryPath: "C:\work"
               Libraries: ""
                  Loaded: 1
           ExecutionMode: outofprocess
               ProcessID: 12345

ライブラリをアンロードするために、以下を入力します。

configObj.unload

ホスト プロセスに関する情報

関数 clibConfiguration を呼び出して作成した CLibraryConfiguration オブジェクトを使用して、ホスト プロセスに関する情報を取得します。次のプロパティは、C++ ライブラリへの MATLAB インターフェイスの設定とステータスに関する情報を提供します。

  • InterfaceLibraryPath には、インターフェイス ライブラリへのパスが含まれます。

  • Libraries には、インターフェイスのビルドに使用されたライブラリの名前が含まれます。

  • Loaded には、プロセスのステータスが含まれます。ライブラリが読み込まれている場合は 1、それ以外の場合は 0 が示されます。

  • ExecutionMode は、MATLAB と同じプロセスで C++ インターフェイスを読み込むかどうかを示します。inprocess または outofprocess として指定します。

  • ProcessName には、ホスト プロセスの名前 (outofprocess の場合、既定では MATLABCLibHost) が含まれています。

  • ProcessID には、プロセス識別子が含まれています。

参考

オブジェクト

関数