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
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
вместо этого.