Создайте интерфейс к библиотеке C++ без файла определения
clibgen.buildInterface(
генерирует интерфейс MATLAB® к библиотеке C++, заданной HeaderFiles
)HeaderFiles
. Конструкторы класса, методы и функции, которые не может автоматически задать MATLAB, не включены в интерфейс. Чтобы включать недостающую функциональность, используйте clibgen.generateLibraryDefinition
функция.
clibgen.buildInterface(
генерирует интерфейс с помощью одного или нескольких аргументов пары "имя-значение".HeaderFiles
,Name,Value
)
school
Скопируйте school.hpp
заголовочный файл к перезаписываемой папке H:\Documents\MATLAB\publisher
.
copyfile(fullfile(matlabroot,'extern','examples','cpp_interface','school.hpp'),'.','f')
Создайте интерфейс.
clibgen.buildInterface('school.hpp')
Warning: Only header files specified; assuming this is a header-only library. If library files also need to be specified, use the 'Libraries' option. Building interface file 'schoolInterface.dll'. Interface file 'schoolInterface.dll' built in folder 'H:\Documents\MATLAB\publisher\school'. To use the library, add the interface file folder to the MATLAB path. 1 constructs need further definition to be included in the interface. Use clibgen.generateLibraryDefinition to provide definitions.
Нажмите interface file folder
соединитесь, чтобы добавить интерфейс в путь.
Отобразите классы в библиотеке.
clib.school.Tab
Отобразите справку для библиотеки.
help clib.school
Classes contained in clib.school: Person - clib.school.Person Representation of C++ class Person Teacher - clib.school.Teacher Representation of C++ class Teacher Student - clib.school.Student Representation of C++ class Student
Сравните эту функциональность с выходом summary(defineschool)
команда в Публикует Интерфейс к Библиотеке C++ Только для заголовка. Этот интерфейс не включает:
Functions string clib.school.getName(clib.school.Person)
HeaderFiles
— Заголовочные файлыОдин или несколько заголовочных файлов, заданных как массив строк, вектор символов или массив ячеек из символьных векторов. Поддерживаемыми расширениями файла является .h
, .hpp
, и .hxx
. Заголовочный файл без расширения также поддержан. В случае необходимости имя включает полный или относительный путь в файл.
Если основной заголовочный файл содержит #include
операторы для заголовочных файлов в различных папках, используйте IncludePath
аргумент, чтобы задать эти пути.
MATLAB записывает интерфейсные файлы в подпапке в текущей папке, если OutputFolder
задан. Имя подпапки является именем первого заголовочного файла без расширения файла. Например, следующий оператор создает интерфейсный файл библиотеки в подпапке myHeader
в текущей рабочей папке.
clibgen.buildInterface('myHeader.hpp')
Типы данных: char |
string
| cell
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
clibgen.buildInterface('myHeader.hpp','Libraries','myHeader.lib','OutputFolder','C:\work');
'Libraries'
— Путь к библиотекеОдин или несколько путей к библиотеке, заданных как массив строк, вектор символов или массив ячеек из символьных векторов. Каждый Libraries
значение является именем полного пути к библиотеке. Например, выполнение этого оператора на Windows® создает sampleInterface.dll
использование myLib.lib
в C:\myLib\
и записи это к подпапке sample
в текущей рабочей папке.
clibgen.buildInterface('sample.hpp','Libraries','C:\myLib\myLib.lib')
Типы данных: char |
string
| cell
'IncludePath'
— Папки для включенных заголовочных файловПапки для включенных заголовочных файлов, заданных как массив строк, вектор символов или массив ячеек из символьных векторов. IncludePath
имя полного пути к папкам, чтобы включать во время компиляции заголовочных файлов.
Типы данных: char |
string
| cell
'OutputFolder'
folderName Имя папки раньше генерировало интерфейсную библиотеку, заданную как скаляр строки или вектор символов. Например, этот оператор создает myHeaderInterface.dll
в C:\work\myHeader
на Windows.
clibgen.buildInterface('myHeader.hpp','OutputFolder','C:\work')
Типы данных: char |
string
| cell
'PackageName'
— Интерфейсное имя пакетаИнтерфейсное имя пакета, заданное как скаляр строки или вектор символов. Для интерфейсов, созданных из одного заголовочного файла, значением по умолчанию является имя заголовка. Для нескольких заголовочных файлов задайте имя пакета как допустимое имя MATLAB. Например, этот оператор создает myPackageInterface
файл библиотеки в подпапке myPackage
в текущей рабочей папке.
clibgen.buildInterface({'h1.hpp','h2.hpp'},'PackageName','myPackage')
Типы данных: char |
string
| cell
'Verbose'
— Опция, чтобы отобразить сообщения генерацииfalse
(значение по умолчанию) | true
Опция, чтобы отобразить сообщения генерации, заданные как true
или false
. Когда true
, clibgen.buildInterface
генерация отображений обменивается сообщениями к командному окну при создании интерфейса. Например, этот оператор создает h1Interface
файл библиотеки в подпапке h1
и отображения обмениваются сообщениями в командном окне.
clibgen.buildInterface('h1.hpp','Verbose',true)
Для получения дополнительной информации см. сообщения О Неподдерживаемых Типах.
Типы данных: логический
'TreatObjectPointerAsScalar'
— Сформируйте для объектного типа указателяfalse
(значение по умолчанию) | true
Сформируйте для объектного типа указателя, заданного как true
или false
. Если TreatObjectPointerAsScalar
верно, затем MATLAB обрабатывает все объектные типы указателей в библиотечных функциях как скаляр. В противном случае форма типа неизвестна.
Типы данных: логический
'TreatConstCharPointerAsCString'
— Форма и MATLAB вводят для const char *
тип указателяfalse
(значение по умолчанию) | true
Форма и MATLAB вводят для const char *
тип указателя, заданный как true
или false
. Если TreatConstCharPointerAsCString
верно, затем MATLAB обрабатывает весь const char *
типы в библиотечных функциях как струны до путем определения Типа MATLAB как string
и сформируйте как nullTerminated
. В противном случае форма типа неизвестна.
Типы данных: логический
'DefinedMacros'
— Список макроопределенийСписок макроопределений, чтобы использовать при парсинге заголовочных файлов, заданных как пустых, скалярная строка или вектор-строка из скалярных строк. Имя содержит символы 1-9, a-z, A-Z и '_' и не может начаться с цифры.
Типы данных: string
'UndefinedMacros'
— Список макро-отменСписок макро-отмен, чтобы использовать при парсинге заголовочных файлов, заданных как пустых, скалярная строка или вектор-строка из скалярных строк. Имя содержит символы 1-9, a-z, A-Z и '_' и не может начаться с цифры.
Типы данных: string
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.