主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

使用 MATLAB 代码创建通用 COM 组件

支持的平台:Windows®

此示例说明如何使用 MATLAB® 函数创建通用 COM 组件并将其集成到应用程序中。目标系统不需要 MATLAB 的许可副本。

前提条件

  • 验证您是否已安装 Windows 10 SDK 工具包。有关详细信息,请参阅 Windows 10 SDK

  • 验证您是否已安装 MinGW-w64。要从 MathWorks® 文件交换中心安装它,请参阅 MATLAB 对 MinGW-w64 C/C++ 编译器的支持

    为了确保 MATLAB 检测到 Windows 10 SDK 工具包和 MinGW-w64,请使用以下命令:

    mbuild -setup -client mbuild_com

  • 验证您是否已安装 Microsoft® Visual Studio®

  • 最终用户必须安装 MATLAB Runtime 才能运行应用程序。有关详细信息,请参阅下载并安装 MATLAB Runtime

    出于测试目的,您可以使用安装的 MATLAB 来代替 MATLAB Runtime

MATLAB 中创建函数

在 MATLAB 中,检查您想要打包的 MATLAB 代码。对于此示例,打开位于 makesquare.mmatlabroot\toolbox\dotnetbuilder\Examples\VSVersion\COM\MagicSquareExample\MagicSquareComp

function y = makesquare(x)
y = magic(x);

在 MATLAB 命令提示符下,输入 makesquare(5)

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9

使用 compiler.build.COMComponent 创建 COM 组件

使用 compiler.build.comComponent 函数将该函数打包为 COM 组件。

  1. 将位于 makesquare.m 文件 matlabroot\toolbox\dotnetbuilder\Examples\VSVersion\COM\MagicSquareExample\MagicSquareComp 复制到您的工作目录。例如,如果您使用的是 Visual Studio 版本 15,请输入:

    copyfile(fullfile(matlabroot,'toolbox','dotnetbuilder','Examples', ...
        'VS15','COM','MagicSquareExample','MagicSquareComp','makesquare.m'));
    appFile = which('makesquare.m')
  2. 使用 compiler.build.comComponent 函数构建 COM 组件。使用名称-值参量指定组件名称和类名。

    buildResults = compiler.build.comComponent(appFile, ...
    'ComponentName','MagicSquareComp', ...
    'ClassName','Class1');

    您可以使用名称-值参量在 compiler.build 命令中指定其他选项。有关详细信息,请参阅 compiler.build.comComponent

    compiler.build.Results 对象 buildResults 包含有关编译类型、生成的文件、包含的支持包和编译选项的信息。

    该函数会在当前工作目录中名为 MagicSquareCompcomComponent 的文件夹中生成以下文件:

    • magicsquare.def

    • magicsquare.rc

    • magicsquare_1_0.dll

    • readme.txt

    • requiredMCRProducts.txt

    • unresolvedSymbols.txt

    • Class1_com.cpp - 定义类的 C++ 源代码文件。

    • Class1_com.hpp - 定义类的 C++ 头文件。

    • dlldata.c - 包含 DLL 类工厂所需的入口点和数据结构的 C 源代码文件。

    • GettingStarted.html - 包含安装 COM 组件步骤的 HTML 文件。

    • includedSupportPackages.txt - 包含所含支持包信息的文本文件。

    • MagicSquareComp.def - 模块定义文件,定义哪些函数包含在 DLL 导出表中。

    • MagicSquareComp.rc - 描述组件使用的资源的资源脚本文件。

    • MagicSquareComp_1_0.dll - 动态链接库文件。

    • MagicSquareComp_dll.cpp - 包含辅助函数的 C++ 源代码文件。

    • MagicSquareComp_idl.h - C++ 头文件。

    • MagicSquareComp_idl.idl - 接口定义语言文件。

    • MagicSquareComp_idl.tlb - 包含有关 COM 对象属性和方法的信息的类型库文件。

    • MagicSquareComp_idl_i.c - 包含 IDL 接口的 IID 和 CLSID 的 C 源代码文件。

    • MagicSquareComp_idl_p.c - 包含 IDL 接口的代理桩件代码的 C 源代码文件。

    • mccExcludedFiles.log - 包含应用程序中未包含的任何工具箱函数列表的日志文件。有关不支持的函数的信息,请参阅 MATLAB Compiler 限制

    • mwcomtypes.h - 包含接口定义的 C++ 头文件。

    • mwcomtypes_i.c - 包含 IID 和 CLSID 的 C 源代码文件。

    • mwcomtypes_p.c - 包含代理桩件代码的 C 源代码文件。

    • readme.txt - 包含部署信息的文本文件。

    • requiredMCRProducts.txt - 包含 MATLAB Runtime 运行应用程序所需产品的产品 ID 的文本文件。

    • unresolvedSymbols.txt - 包含有关未解析符号的信息的文本文件。

    注意

    生成的组件不包括 MATLAB Runtime 或安装程序。要使用 buildResults 对象创建安装程序,请参阅 compiler.package.installer

集成到 COM 应用程序中

要将 COM 组件集成到应用程序中,请参阅创建 Microsoft Visual Basic 工程

另请参阅

|

主题