exponenta event banner

mclRunMain

Механизм создания одинакового кода оболочки на всех платформах

Резюме

typedef int (*mclMainFcnType)(int, const char **);

int mclRunMain(mclMainFcnType run_main,
               int argc,
               const char **argv)

Описание

Поскольку при создании приложения, использующего общую библиотеку C или C++, созданную компилятором MATLAB ® Compiler SDK™, необходимо предоставить код оболочки ,mclRunMain позволяет создать идентичный код оболочки во всех средах платформы MATLAB Compiler SDK.

mclRunMain особенно полезен в средах Macintosh OS X, где для правильной работы MATLAB Runtime необходимо создать цикл выполнения.

При запуске цикла выполнения Mac OS X, если mclInitializeApplication задает -nojvm или -nodisplay создание цикла прогона является прямым процессом. В противном случае необходимо создать структуру Cocoa. Фреймворки Cocoa состоят из библиотек, API и среды выполнения MATLAB, которые формируют уровень разработки для всех Mac OS X.

Как правило, функция, на которую указывает run_main возвращает с указателем (возвращаемым значением) код, который его вызвал. При использовании какао на Macintosh, однако, когда функция указывает на run_main возвращает, MATLAB Runtime вызывает выход, прежде чем возвращаемое значение может быть получено приложением, из-за невозможности базового кода получить контроль, когда Cocoa выключен.

Внимание

Использовать не следует mclRunMain если приложение создает собственную полную графическую среду.

Примечание

В средах, отличных от Macintosh, mclRunMain действует как обертка и не выполняет какой-либо существенной обработки.

Параметры

run_main

Имя функции, выполняемой после кода настройки среды выполнения MATLAB.

argc

Число передаваемых аргументов run_main функция. Обычно, argc получен заявкой по ее main функция.

argv

Указатель на массив символьных указателей. Обычно, argv получен заявкой по ее main функция.

Примеры

Вызов с использованием этой базовой структуры:

int returncode = 0;
mclInitializeApplication(NULL,0); 
returncode = mclRunMain((mclmainFcn)
                   my_main_function,0,NULL);

См. также

Представлен в R2010b