Опубликуйте текст справки для интерфейса MATLAB к библиотеке C++

Когда вы публикуете интерфейс, clibgen.generateLibraryDefinition функция вставляет комментарии заголовочного файла C++ и другой текст по умолчанию о классах и функциях. doc функционируйте отображает этот текст пользователю. Можно отключить вставку комментариев C++ или изменить текст путем редактирования файла определения библиотеки.

Примечание

Если вы уже загрузили clib пакет, например, путем вызова doc или вызывая конструктора класса, затем необходимо перезапустить MATLAB®, чтобы изменить интерфейс.

Автоматически используйте комментарии C++ для текста справки

Если эти общедоступные построения содержат комментарии C++, то MATLAB добавляет комментарии к описаниям MATLAB по умолчанию.

  • Функции и аргументы

  • Функции членства и аргументы

  • Классы и структуры

  • Элементы данных

  • Перечисления и enumerants

MATLAB читает стиль Doxygen, комментарии C++, но не является синтаксическим анализатором Doxygen. Например, процессы MATLAB Doxygen @brief и @details команды, чтобы добавить содержимое в класс или функциональное описание. MATLAB читает @param и @return команды, чтобы увеличить описания аргумента. MATLAB использует содержимое @code команды, чтобы обеспечить примеры кода. В рамках любой команды Doxygen MATLAB игнорирует теги форматирования. Например, синтаксический анализатор Doxygen отображает word как показано в этом теге <b>word</b> полужирным шрифт. MATLAB просто включает текст <b>word</b> в справке. MATLAB не отображает теги HTML <code>, ​</​code>, ​<p>, ​</​p>, ​ и <br>.

По умолчанию MATLAB копирует комментарии C++ с заголовка библиотеки и исходных файлов в Description и, при наличии, DetailedDescription аргументы для этих методов. Перечисления опционально имеют EnumerantDescriptions аргументы. Можно рассмотреть и отредактировать содержимое с помощью .mlx файл определения библиотеки.

Description, DetailedDescription, и EnumerantDescriptions аргументы принимают значения строки. Можно вручную обновить текст в этих значениях. Например, в .hpp может быть больше содержимого файл, чем MATLAB включает по умолчанию. Или вы можете хотеть включать примеры кода для своего варианта использования.

Если вы не хотите копировать комментарии C++ с заголовка и исходных файлов, то вызовите clibgen.generateLibraryDefinition с набором аргумента 'GenerateDocumentationFromHeaderFiles' к false. Можно все еще ввести текст в Description аргумент в файле определения.

Вручную обновите текст справки

Этот пример использует встроенный интерфейс, Публикуют Интерфейс к Библиотеке C++ Только для заголовка. Для другого примеры смотрите, Изменяют Справку Библиотеки.

Если вы создали интерфейс, перемещение к папке с defineschool.mlx файл и school папка с интерфейсной библиотекой. В качестве альтернативы создайте интерфейс:

copyfile(fullfile(matlabroot,'extern','examples','cpp_interface','school.hpp'),'.','f')
clibgen.generateLibraryDefinition('school.hpp')
build(defineschool)
addpath("school")
summary(defineschool)

Текст справки по умолчанию для класса Person Representation of C++ class Person. Чтобы отобразить справку, введите:

doc 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

Чтобы изменить этот текст, отредактируйте defineschool.mlx. Ищите текст Representation of C++ class Person.

Измените "Description" значение. Изменение:

"clib.school.Person    Representation of C++ class Person."

к:

"clib.school.Person    Class defined by name and age."

Сохраните файл.

Чтобы восстановить библиотеку, перезапустите MATLAB. Перейдите к папке, содержащей defineschool.mlx. Удалите существующий интерфейсный файл.

delete school\*.dll

Создайте интерфейс и обновите путь.

build(defineschool)
addpath school

Отобразите обновленную справку.

doc clib.school
Classes contained in clib.school:
Person               - clib.school.Person    Class defined by name and age
Teacher              - clib.school.Teacher    Representation of C++ class Teacher
Student              - clib.school.Student    Representation of C++ class Student

Сравните сгенерированную справку с комментариями заголовочного файла

Пример, описанный в, Изменяет Справку Библиотеки, показывает сгенерированную справку для XMLPlatformUtils.Initialize метод в библиотеке синтаксического анализатора Apache™ Xerces-C ++ XML. Это содержимое прибывает из Apache проект Xerces, https://xerces.apache.org, и лицензируется в соответствии с лицензией Apache 2.0, https://www.apache.org/licenses/LICENSE-2.0.

MATLAB использует комментарии C++ в PlatformUtils.hpp файл.

    /** @name Initialization and Panic methods */
    //@{

    /** Perform per-process parser initialization
      *
      * Initialization <b>must</b> be called first in any client code.
      *
      * @param locale The locale to use for messages.
      *
      * The locale is set if the Initialize() is invoked for the very first time,
      * to ensure that each and every message loader, in the process space, share
      * the same locale.
      *
      * All subsequent invocations of Initialize(), with a different locale, have
      * no effect on the message loaders, either instantiated, or to be instantiated.
      *
      * To set to a different locale, client application needs to Terminate() (or
      * multiple Terminate() in the case where multiple Initialize() have been invoked
      * before), followed by Initialize(new_locale).
      *
      * The default locale is "en_US".
      *
      * @param nlsHome User specified location where MsgLoader retrieves error message files.
      *                the discussion above with regard to locale, applies to nlsHome as well.
      *
      * @param panicHandler Application's panic handler, application owns this handler.
      *                     Application shall make sure that the plugged panic handler persists
      *                     through the call to XMLPlatformUtils::Terminate().
      *
      * @param memoryManager Plugged-in memory manager which is owned by the
      *                      application. Applications must make sure that the
      *                      plugged-in memory manager persist through the call to
      *                      XMLPlatformUtils::Terminate()
      */
    static void Initialize(const char*          const locale = XMLUni::fgXercescDefaultLocale
                         , const char*          const nlsHome = 0
                         ,       PanicHandler*  const panicHandler = 0
                         ,       MemoryManager* const memoryManager = 0);

После создания интерфейса в примере отобразите справку MATLAB для Initialize метод.

help clib.MyXercesLibrary.xercesc_3_1.XMLPlatformUtils.Initialize
 clib.MyXercesLibrary.xercesc_3_1.XMLPlatformUtils.Initialize    Method of C++ class xercesc_3_1::XMLPlatformUtils.
    Perform per-process parser initialization

    This content is from the external library documentation.
    
    Initialization <b>must</b> be called first in any client code.

    Inputs
      locale         read-only string  
      locale The locale to use for messages.

      nlsHome        read-only string  
      nlsHome User specified location where MsgLoader retrieves error message files.
      the discussion above with regard to locale, applies to nlsHome as well.

      panicHandler   clib.MyXercesLibrary.xercesc_3_1.PanicHandler  
      panicHandler Application's panic handler, application owns this handler.
      Application shall make sure that the plugged panic handler persists
      through the call to XMLPlatformUtils::Terminate().

      memoryManager  clib.MyXercesLibrary.xercesc_3_1.MemoryManager  
      memoryManager Plugged-in memory manager which is owned by the
      application. Applications must make sure that the
      plugged-in memory manager persist through the call to
      XMLPlatformUtils::Terminate()

    No outputs

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

|

Похожие темы