このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
インプロセスまたはアウトプロセスでの C++ ライブラリの読み込み
インプロセスの C++ ライブラリの読み込み
MATLAB® では、インターフェイスを C++ ライブラリにインプロセスまたはアウトプロセスで読み込むことができます。既定では、clib
名前空間でコマンドを呼び出すと、MATLAB はライブラリをインプロセスで読み込みます。つまり、MATLAB は MATLAB と同じプロセスでライブラリを読み込みます。このモードはパフォーマンスが重要なユース ケースで使用します。
アウトプロセスの C++ ライブラリの読み込み
MATLAB は、アウトプロセス実行モードを使用して C++ 関数を別のプロセスで実行できます。個別のプロセスで実行すると、以下が可能になります。
MATLAB と競合するサードパーティ ライブラリを使用する。たとえば、MATLAB にも付属しているサードパーティ ライブラリが C++ ライブラリに必要だが、この C++ ライブラリに必要なのはそのサードパーティ ライブラリの別バージョンであるという場合があります。
テスト中に MATLAB を再起動する必要がなくなるため、インターフェイスの開発を効率的に反復できる。
C++ ライブラリ コードでのクラッシュから MATLAB プロセスを分離する。
Ctrl+C を押して C++ ライブラリ インターフェイスの実行を中断する。 (R2025a 以降)
アウトプロセスで実行するには、clibPublishInterfaceWorkflow
関数で作成されたワークフロー スクリプトで、ワークフロー スクリプトでのパブリッシュで説明した [Enable out-of-process execution mode] セクションを実行します。
あるいは、コマンド ラインから、名前と値の引数 ExecutionMode
を "outofprocess"
に設定して clibConfiguration
関数を呼び出します。
libraryconfig = clibConfiguration("mylib",ExecutionMode="outofprocess")
libraryconfig = CLibraryConfiguration for mylib with properties: InterfaceLibraryPath: "C:\work" Libraries: "" Loaded: 0 ExecutionMode: outofprocess OutOfProcessEnvironmentVariables: dictionary (string-->string) with no entries
ライブラリ インターフェイスがアウトプロセスで実行されるように構成された後、ライブラリ名前空間で clib
コマンドを呼び出すと、MATLAB はライブラリをアウトプロセスで読み込みます。
アウトプロセスの C++ ライブラリのアンロード
関数 clibPublishInterfaceWorkflow
で作成されたワークフロー スクリプトで [Enable out-of-process execution mode] セクションを実行した場合、[Unload out-of-process library] セクションを実行して C++ ライブラリをアンロードできます。
あるいは、MATLAB インターフェイスで unload
を呼び出します。たとえば、school
C++ ライブラリへのインターフェイス schoolInterface.dll
をビルドし、そのインターフェイスを読み込んでアウトプロセス実行に設定したものとします。ライブラリ インターフェイスの構成を表示します。
libraryconfig = clibConfiguration("school")
libraryconfig = CLibraryConfiguration for school with properties: InterfaceLibraryPath: "C:\work" Libraries: "" Loaded: 1 ExecutionMode: outofprocess ProcessID: 12345 OutOfProcessEnvironmentVariables: dictionary (string ⟼ string) with no entries
次に、ライブラリをアンロードします。
libraryconfig.unload
ホスト プロセスに関する情報の取得
関数 clibConfiguration
を呼び出して作成した CLibraryConfiguration
オブジェクトを使用して、ホスト プロセスに関する情報を取得します。次のオブジェクト プロパティは、C++ ライブラリへの MATLAB インターフェイスの設定とステータスに関する情報を提供します。
InterfaceLibraryPath
には、インターフェイス ライブラリへのパスが含まれます。Libraries
には、インターフェイスのビルドに使用されたライブラリの名前が含まれます。Loaded
には、プロセスのステータスが含まれます。ライブラリが読み込まれている場合は1
、ライブラリが読み込まれていない場合は0
が示されます。ExecutionMode
は、MATLAB と同じプロセスで C++ ライブラリ インターフェイスを読み込むかどうかを示します。inprocess
またはoutofprocess
として指定します。ProcessName
には、ホスト プロセスの名前が含まれています。アウトプロセス ホストの既定の名前はMATLABCLibHost
です。ProcessID
には、プロセス識別子が含まれています。OutOfProcessEnvironmentVariables
には、C++ ライブラリへのインターフェイスで使用されるシステム環境変数の名前と値が 1 つ以上含まれています。環境変数は、アウトプロセス モードでのみ表示できます。