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 | 指向从 |
const std::u16string & ctfPath | 存档的路径(相对或绝对)。 |
const std::u16string& session_key = std::u16string() | AES 解密密钥,指定为具有 64 字节文件大小的十六进制编码 AES 密钥。 有关详细信息,请参阅 |
返回值
| 指向 |
异常
| 在共享库路径上未找到具有给定名称的库。 |
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 中推出
另请参阅
matlab::cpplib::convertUTF8StringToUTF16String | matlab::cpplib::convertUTF16StringToUTF8String | matlab::cpplib::initMATLABApplication | matlab::cpplib::runMain | matlab::cpplib::initMATLABLibraryAsync | matlab::cpplib::MATLABLibrary::feval | matlab::cpplib::MATLABLibrary::fevalAsync | matlab::cpplib::MATLABLibrary::waitForFiguresToClose