exponenta event banner

Пример файла определения библиотеки C++

В этом примере показан файл определения библиотеки, созданный из файла заголовка C++.

Пример файла заголовка

Этот пример файла заголовка содержит конструкции языка C++, которые нуждаются в дальнейшем определении издателя для создания интерфейса MATLAB с библиотекой. Конструкторами классов и функциями являются только сигнатуры C++. Реализация отсутствует, и они не используются в каких-либо примерах.

Используйте соответствующую definecppUseCases.mlx для получения сведений о добавлении функциональных возможностей в интерфейс MATLAB.

edit(fullfile(matlabroot,"extern","examples","cpp_interface","cppUseCases.hpp"))

Файл определения библиотеки definecppUseCases.mlx

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