В этом примере показан файл определения библиотеки, созданный из файла заголовка C++.
Этот пример файла заголовка содержит языковые конструкции C++, которые нуждаются в дальнейшем определении от издателя, чтобы создать интерфейс MATLAB к библиотеке. Конструкторы и функции классов являются только сигнатурами C++. Реализация отсутствует, и они не используются ни в каких примерах.
Используйте соответствующую definecppUseCases.mlx файл, чтобы узнать, как добавить функциональность к интерфейсу MATLAB.
edit(fullfile(matlabroot,"extern","examples","cpp_interface","cppUseCases.hpp"))
definecppUseCases.mlxThe definecppUseCases.mlx файл определения библиотеки создается из cppUseCases.hpp заголовочный файл с использованием clibgen.generateLibraryDefinition функция. После генерации файла определения библиотеки замените <SHAPE>, <DIRECTION>, и <MLTYPE> текст с соответствующими значениями, чтобы MATLAB мог создавать эквивалентные сигнатуры функций. Для получения дополнительной информации о предоставлении информации для всех конструкторов и функций в этой библиотеке, смотрите Задать интерфейс MATLAB для библиотеки C++.
edit definecppUseCases.mlxНапример, предположим, что вход для работы addClassByPtr - указатель на класс ns::MyClass2. Поиск этого текста:
double addClassByPtr(ns::MyClass2 const * myc2)
Аргументы в myc2 не определен для MATLAB. Смотрите этот оператор, который содержит <SHAPE>:
defineArgument(addClassByPtrDefinition, "myc2", "clib.cppUseCases.ns.MyClass2", "input", <SHAPE>);
Чтобы определить аргумент, замените <SHAPE> с 1:
defineArgument(addClassByPtrDefinition, "myc2", "clib.cppUseCases.ns.MyClass2", "input", 1);
Раскомментируйте семь линии, определяющих функцию, и сохраните файл MLX.
Чтобы найти другие неопределенные функции, выполните поиск:
%validate