インプロセスまたはアウトプロセスでの 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
には、プロセス識別子が含まれています。