matlab::cpplib::initMATLABLibrary
Initialize a library of MATLAB functions packaged in a deployable archive file
Description
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())
Initialize a library of MATLAB® functions packaged in a deployable archive (CTF) file, and return a unique
pointer to the library. As parameters, it takes a shared pointer to a
MATLABApplication
instance and a path to the CTF. Optionally, it
takes an additional argument of a hex encoded 64 byte AES decryption key, which allows
the user to decrypt the library at runtime using the C++ API rather than a MEX
loader.
The path to the deployable archive is either relative or absolute. If the path is relative, the following paths are prepended in the order specified below until the file is found or all possibilities are exhausted.
the value of the environment variable
CPPSHARED_BASE_CTF_PATH
, if definedthe working folder
the folder where the executable is located
on Mac: the folder three levels above the folder where the executable is located (for example, if the executable is
generic_interface/foo_generic.app/Contents/MacOS/foo
, the folder used isgeneric_interface
)
If the library is found, it is initialized and a pointer to it is returned. Otherwise, an exception is thrown.
Parameters
std::shared_ptr<MATLABApplication>
application | Pointer to a |
const std::u16string & ctfPath | Path (relative or absolute) to archive. |
const std::u16string& session_key =
std::u16string() | AES decryption key, specified as a hex encoded AES key with a 64 byte file size. For more details, see |
Return Value
| Pointer to a |
Exceptions
| No library with the given name is found on the shared library path. |
matlab::cpplib::LibInitErr | Library cannot be initialized. |
Examples
Initialize MATLABLibrary
std::vector<std::u16string> opts = {u"-nojvm"}; auto matlabPtr = initMATLABApplication(MATLABApplicationMode::IN_PROCESS, opts); auto libAstro = initMATLABLibrary(matlabPtr, convertUTF8StringToUTF16String("astro.ctf"));
Version History
Introduced in R2018a
See Also
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