Вызов функций в интерфейсе Windows в общую библиотеку C++

Если вы создали matrixOperations интерфейс в примере Публикация интерфейса в общей библиотеке C++ в Windows, затем его можно использовать в следующем примере. Перейдите к папке, которую вы использовали в примере. Этот пример принимает matrixOperations.dll файл интерфейса находится в этой папке:

C:\Documents\matrixexample\matrixlib

Установка путей

В приглашении операционной системы добавьте путь к файлу общей библиотеки C++. Для получения дополнительной информации смотрите Set Run-Time Library Path для интерфейса C++.

set PATH=rtPath;%PATH%

где rtPath - выход:

rtPath = fullfile(fullfile(matlabroot,'extern','examples','cpp_interface'),'win64','mingw64')

Для примера введите эту команду где release является MATLAB® освободить папку, такую как R2021a.

set PATH=C:\Program Files\MATLAB\release\extern\examples\cpp_interface\win64\mingw64;%PATH%

Запустите MATLAB. Чтобы добавить файл интерфейса MATLAB к пути MATLAB, перейдите к папке, которую вы использовали в примере публикации.

addpath(pwd)

Просмотр справки

В командной строке MATLAB отобразите справку по интерфейсу. В примере, clibgen.generateLibraryDefinition команда изменила имя интерфейса на matrixOperations на matrixlib. Введите эту команду, чтобы загрузить пакет.

doc clib.matrixlib.Mat

Чтобы отобразить представители пакета, введите:

doc clib.matrixlib
Classes contained in clib.matrixlib:
Mat             - clib.matrixlib.Mat    Representation of C++ class Mat

Functions contained in clib.matrixlib:
addMat          - clib.matrixlib.addMat    Representation of C++ function addMat
updateMatByX    - clib.matrixlib.updateMatByX    Representation of C++ function updateMatByX
updateMatBySize - clib.matrixlib.updateMatBySize    Representation of C++ function updateMatBySize

Чтобы отобразить сигнатуры для функции пакета, щелкните ссылки для addMat, updateMatByX, и updateMatBySize.

clib.matrixlib.addMat    Representation of C++ function addMat
  inputs
    mat            read-only clib.matrixlib.Mat
  outputs
    RetVal         int32

clib.matrixlib.updateMatByX    Representation of C++ function updateMatByX
  inputs
    mat            clib.matrixlib.Mat
    X              int32
  outputs

clib.matrixlib.updateMatBySize    Representation of C++ function updateMatBySize
  inputs
    mat            clib.matrixlib.Mat
    arr            int32
  outputs

Отображение информации о clib.matrixlib.Mat классов, щелкните ссылку для Mat.

clib.matrixlib.Mat    Representation of C++ class Mat
Method Summary:
  Mat                 - clib.matrixlib.Mat    Constructor of C++ class Mat
  Mat                 - clib.matrixlib.Mat    Constructor of C++ class Mat
  setMat              - clib.matrixlib.Mat.setMat    Method of C++ class Mat
  getMat              - clib.matrixlib.Mat.getMat    Method of C++ class Mat
  getLength           - clib.matrixlib.Mat.getLength    Method of C++ class Mat
  copyMat             - clib.matrixlib.Mat.copyMat    Method of C++ class Mat

Чтобы отобразить сигнатуры конструктора и метода, используйте methods или methodsview функций. Для примера введите:

methodsview clib.matrixlib.Mat

Функции библиотеки вызовов

Протестируйте функции в интерфейсе. Для примера введите:

matObj = clib.matrixlib.Mat;   % Create a Mat object
intArr = [1,2,3,4,5];
matObj.setMat(intArr);     % Set the values to intArr
retMat = matObj.getMat(5)  % Display the values
retMat =

  1×5 int32 row vector

   1   2   3   4   5

Похожие темы