Создание MEX-функций C++ с матричным API C

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++

Примеры исходного кода 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 и деструктор освобождают ту же память, которая может повредить память.

Использование mexPrintf, чтобы Распечатать к Окну Команды MATLAB

Используя cout или язык C функция printf не работает как ожидалось в файлах MEX C++. Используйте функцию mexPrintf вместо этого.

Смотрите также

Связанные примеры

Больше о

Была ли эта тема полезной?