主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

matlab::cpplib::initMATLAB 库

初始化可部署存档文件中打包的 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 的路径。或者,它接受一个十六进制编码的 64 字节 AES 解密密钥的附加参量,这允许用户在运行时使用 C++ API 而不是 MEX 加载程序解密库。

可部署存档的路径可以是相对的,也可以是绝对的。如果路径是相对的,则按照下面指定的顺序添加以下路径,直到找到文件或用尽所有可能性。

  • 环境变量 CPPSHARED_BASE_CTF_PATH 的值(如果已定义)

  • 工作文件夹

  • 可执行文件所在的文件夹

  • Mac 上:可执行文件所在文件夹的上三级文件夹(例如,如果可执行文件是 generic_interface/foo_generic.app/Contents/MacOS/foo,则使用的文件夹是 generic_interface

如果找到该库,则对其进行初始化并返回指向它的指针。否则,将引发异常。

参数

std::shared_ptr<MATLABApplication> application

指向从 MATLABApplication 返回的 initMATLABApplication 对象的指针。

const std::u16string & ctfPath

存档的路径(相对或绝对)。

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

AES 解密密钥,指定为具有 64 字节文件大小的十六进制编码 AES 密钥。

有关详细信息,请参阅 mcc -k

返回值

std::unique_ptr<MATLABLibrary>

指向 MATLABLibrary 对象的指针,用于调用库中的函数、feval 等。

异常

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 中推出