Выполните функцию с ее входными параметрами в основной функции
int runMain(std::function<int(std::shared_ptr<MatlabApplication> func, int, const char**)>std::shared_ptr<MatlabApplication>&& app, int argc, const char **argv);
Выполните функцию с ее входными параметрами в основной функции. matlab.cpplib.runMain
принимает как вход функцию, которую вы хотите выполнить, экземпляр MATLABApplication
, и входные параметры к функции вы хотите выполниться. Это возвращает, как выведено код, указывающий на успешность или неуспешность выполнения.
Эта функция может использоваться на любой платформе, чтобы разделить логику первичной функции от того из main()
. На macOS это также выполняет требования API Какао
std::function<int(std::shared_ptr<MATLABApplication>, int, const char**)> func |
|
std::shared_ptr<MATLABApplication>&& app | Экземпляр |
int argc | Количество входных параметров из командной строки. |
const char **argv | Массив входных параметров. |
| Успех указания кода возврата (условно: |
MATLABApplication
Объект в runMain
и отключите егоint myMainFunc(std::shared_ptr<mc::MATLABApplication> app, const int argc, const char * argv[]) { try { // initialize library, call feval, etc. } catch(const std::exception & exc) { std::cerr << exc.what() << std::endl; return -1; } return 0; // no error } int main(const int argc, const char * argv[]) { std::vector<std::u16string> options ; auto matlabApplication = mc::initMATLABApplication( mc::MATLABApplicationMode::IN_PROCESS,options); return mc::runMain(myMainFunc, std::move(matlabApplication), argc, argv); }
matlab::cpplib::initMATLABApplication
| matlab::cpplib::convertUTF8StringToUTF16String
| matlab::cpplib::convertUTF16StringToUTF8String
| matlab::cpplib::initMATLABLibrary
| matlab::cpplib::initMATLABLibraryAsync
| matlab::cpplib::MATLABLibrary::feval
| matlab::cpplib::MATLABLibrary::fevalAsync
| matlab::cpplib::MATLABLibrary::waitForFiguresToClose