主要内容

使用 mwArray API (C++03) 部署到 C++ 应用程序

使用处理数据交换的 mwArray API 将打包的 MATLAB® 函数集成到 C++ 应用程序中

在这种方法中,您基于要部署的 MATLAB 函数创建 C++ 共享库和头文件。使用较早期的 MATLAB Compiler SDK™ API for C++ 作为 C++ 应用程序与部署的 MATLAB 函数之间的接口。使用 mwArray API 处理 C++ 应用程序与部署的 MATLAB 函数之间的数据交换。您必须使用预处理器指令将生成的头文件包含在 C++ 应用程序中,以便部署的 MATLAB 函数可用作 C++ 代码内的成员函数。您需要显式地管理部署的 MATLAB 函数所使用的 MATLAB Runtime 实例的生命周期。Runtime 实例与 C++ 应用程序只能在同一进程内运行,并且部署的 MATLAB 函数只能同步执行。

C++ mwArray API 仅支持 C++03 功能。使用 mwArray API 的 C++ 共享库具有一个接口,该接口使用 C 样式函数初始化 MATLAB Runtime,将打包的 MATLAB 函数加载到 MATLAB Runtime 中,以及管理在 C++ 驱动代码和 MATLAB Runtime 之间传递的数据。这些函数在 C/C++ API 下描述。C++ mwArray API 下所列的函数专用于 mwArray API,不能用于为其他 API 创建的共享库。

App

C++ 共享库编译器MATLAB 程序打包为 C++ 共享库以供部署 (自 R2025a 起)

函数

compiler.build.cppSharedLibrary创建 C++ 共享库 (自 R2021a 起)
compiler.build.CppSharedLibraryOptions构建 C++ 共享库的选项 (自 R2021a 起)
compiler.build.Results编译器编译结果对象
mbuild结合 MATLAB 生成的共享库编译并链接源代码文件

C/C++ API

mclmcrInitialize初始化 MATLAB Runtime 代理库
mclInitializeApplication设置在当前进程中创建的所有 MATLAB Runtime 实例共享的应用程序状态
mclTerminateApplication关闭 MATLAB Runtime 内部应用程序状态
<library>Initialize[WithHandlers]初始化与 library 关联的 MATLAB Runtime 实例
<library>Terminate释放与 library 关联的 MATLAB Runtime 实例分配的所有资源
mclRunMain在所有平台上创建相同包装器代码的机制
mclIsMCRInitialized确定 MATLAB Runtime 是否已正确初始化
mclWaitForFiguresToDie使已部署的应用程序能够处理图形事件,以便图形窗口保持显示
mclGetLastErrorMessage库初始化失败或 MATLAB 函数调用失败导致的最后一个错误消息
mclGetLogFileName检索 MATLAB Runtime 使用的日志文件的名称
mclIsJVMEnabled确定 MATLAB Runtime 是否通过 Java 虚拟计算机 (JVM) 实例启动
mclIsNoDisplaySet确定是否启用了 -nodisplay 模式

C++ mwArray API

mwArray用于将输入/输出参量传递给 MATLAB Compiler SDK 生成的 C++ 函数的类
mwExceptionmwArray API 和 C++ 接口函数使用的异常类型
mwStringmwArray API 使用的字符串类,用于将字符串数据作为某些方法的输出传递

主题

要求

创建 C++ mwArray API 共享库

将 C++ 共享库集成到 C++ 应用程序中

维护

  • 内存管理和清理
    查看有关内存管理的建议。
  • 了解 mclmcrrt 代理层
    MATLAB Compiler™MATLAB Compiler SDK 生成的所有应用程序和软件组件仅需链接到一个 MATLAB 库 mclmcrrt。该库为 MATLAB 库中用于矩阵运算、MAT 文件访问、实用工具和内存管理以及应用程序 MATLAB Runtime 的所有公共函数提供了代理 API。mclmcrrt 库位于已部署的 MATLAB 代码和这些其他版本相关的库之间,提供以下功能:
  • 编译失败
    编译期间可能出现的失败列表。
  • 测试失败
    测试期间可能出现的故障列表。
  • 部署失败
    部署期间可能出现的故障列表。