Main Content

matlab::cpplib::initMATLABLibrary

デプロイ可能なアーカイブ ファイルにパッケージ化された MATLAB 関数のライブラリを初期化

説明

std::unique_ptr<MATLABLibrary> initMATLABLibrary(std::shared_ptr<MATLABApplication> application, const std::u16string & ctfPath)

std::unique_ptr<MATLABLibrary> initMATLABLibrary(std::shared_ptr<MATLABApplication> application, const std::u16string & ctfPath, const std::u16string& session_key = std::u16string())

デプロイ可能なアーカイブ (CTF) ファイルにパッケージ化された MATLAB® 関数のライブラリを初期化し、そのライブラリへの一意のポインターを返します。パラメーターとして、MATLABApplication インスタンスへの共有ポインターと CTF のパスを受け取ります。オプションで、16 進数でエンコードされた 64 バイトの AES 復号化キーの追加引数を受け取ります。これを使用すると、実行時にユーザーが MEX ローダーの代わりに C++ API を使用してライブラリを復号化できます。

デプロイ可能なアーカイブのパスは、相対パスでも絶対パスでもかまいません。相対パスの場合、ファイルが見つかるかすべての可能性がなくなるまで、そのパスの先頭に次のパスが以下に示す順序で付加されます。

  • 環境変数 CPPSHARED_BASE_CTF_PATH の値 (定義されている場合)

  • 作業フォルダー

  • 実行可能ファイルが配置されたフォルダー

  • Mac の場合: 実行可能ファイルが配置されたフォルダーの 3 レベル上のフォルダー (たとえば、実行可能ファイルが generic_interface/foo_generic.app/Contents/MacOS/foo の場合、使用されるフォルダーは generic_interface)

ライブラリが見つかると初期化され、そのライブラリへのポインターが返されます。それ以外の場合は例外がスローされます。

パラメーター

std::shared_ptr<MATLABApplication> application

initMATLABApplication から返された MATLABApplication オブジェクトへのポインター。

const std::u16string & ctfPath

アーカイブへのパス (相対または絶対)。

const std::u16string& session_key = std::u16string()

AES 復号化キー。64 バイトのファイル サイズの 16 進数でエンコードされた AES キーとして指定します。

詳細については、mcc -k を参照してください。

戻り値

std::unique_ptr<MATLABLibrary>

ライブラリから関数 (feval など) を呼び出すために使用される MATLABLibrary オブジェクトへのポインター。

例外

matlab::cpplib::LibNotFound

指定された名前のライブラリが共有ライブラリ パスに見つかりません。

matlab::cpplib::LibInitErr

ライブラリを初期化できません。

MATLABLibrary の初期化

std::vector<std::u16string> opts = {u"-nojvm"};
auto matlabPtr = initMATLABApplication(MATLABApplicationMode::IN_PROCESS, opts);
auto libAstro = initMATLABLibrary(matlabPtr, convertUTF8StringToUTF16String("astro.ctf"));

バージョン履歴

R2018a で導入