MEX-функции, созданные с Матричным API C, поддерживают все стандарты языка C++. Эта тема обсуждает определенные вопросы языка C++, чтобы рассмотреть при создании и использовании файлов MEX. MATLAB® также обеспечивает API, который использует современную семантику C++ и шаблоны разработки, MATLAB Data API. Чтобы использовать этот API, чтобы создать MEX-функции, см. Приложения C++ MEX.
Можно использовать функции в Матричном API C в приложениях C++. Можно также скопировать примеры кода С MATLAB в приложения C++. Например, смотрите файл mexcpp.cpp, который содержит и C и операторы C++.
Примеры исходного кода C++ MATLAB используют расширение файла .cpp. Дополнительный .cpp однозначен и распознан компиляторами C++. Другие возможные расширения включают .C, .cc и .cxx.
Чтобы создать файл MEX C++, введите:
mex filename.cpp
где filename является именем исходного файла.
Можно запустить файл MEX C++ только в системах с той же версией MATLAB, на котором был скомпилирован файл.
Не используйте mxFree или функции mxDestroyArray в деструкторе C++ класса, используемого в MEX-функции. Если MEX-функция выдает ошибку, MATLAB очищает переменные файла MEX, как описано в Автоматической Очистке Временных массивов.
Если ошибка происходит, который вызывает объект выйти из осциллографа, MATLAB вызывает деструктор C++. Освобождение памяти непосредственно в деструкторе означает, что и MATLAB и деструктор освобождают ту же память, которая может повредить память.
Используя cout или язык C функция printf не работает как ожидалось в файлах MEX C++. Используйте функцию mexPrintf вместо этого.