使用 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] | 初始化与 关联的 MATLAB Runtime 实例 |
<library>Terminate | 释放与 关联的 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++ 函数的类 |
mwException | mwArray API 和 C++ 接口函数使用的异常类型 |
mwString | mwArray API 使用的字符串类,用于将字符串数据作为某些方法的输出传递 |
主题
要求
- MATLABCompiler SDK C++ 目标要求
查看使用 MATLAB Compiler SDK 将 MATLAB 函数部署到 C++ 应用程序的软件要求。 - 设置 C++开发环境
设置开发环境以开发集成已部署的 MATLAB 函数的 C++ 应用程序。
创建 C++ mwArray
API 共享库
- 生成 C++ mwArray API 共享库并编译 C++ 应用程序
从 MATLAB 代码创建 C++ mwArray API 共享库,并使用 C++ 示例驱动代码实现它。 - 使用 C++ 共享库编译器,通过 mwArray API 调用 MATLAB 函数。
使用 C++ 共享库编译器创建一个 C++mwArray
共享库。(自 2025a 起)
将 C++ 共享库集成到 C++ 应用程序中
- 从 C/C++ 调用 MATLAB Compiler SDK API 函数
在 C 和 C++ 代码中使用 MATLAB Compiler SDK 共享库函数。 - 将 C++ 共享库与 mwArray 集成
编写 C++ 代码来引用使用mwArray
API 的共享库。 - 创建示例代码来调用导出函数
通过在打包过程中包含示例文件来生成 C++、.NET、Java® 或 Python® 的示例代码。 - 配置 mbuild 选项文件
如何配置mbuild
选项文件。 - 在单个应用程序中使用多个共享库
在单个 C/C++ 应用程序中使用多个生成的共享库。
维护
- 内存管理和清理
查看有关内存管理的建议。 - 了解 mclmcrrt 代理层
MATLAB Compiler™ 和 MATLAB Compiler SDK 生成的所有应用程序和软件组件仅需链接到一个 MATLAB 库mclmcrrt
。该库为 MATLAB 库中用于矩阵运算、MAT 文件访问、实用工具和内存管理以及应用程序 MATLAB Runtime 的所有公共函数提供了代理 API。mclmcrrt
库位于已部署的 MATLAB 代码和这些其他版本相关的库之间,提供以下功能: - 编译失败
编译期间可能出现的失败列表。 - 测试失败
测试期间可能出现的故障列表。 - 部署失败
部署期间可能出现的故障列表。