主要内容

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

内部流程概览

代码生成

构建过程的第一步是生成创建组件所需的所有源代码和其他支持文件。它还创建了包含 DLL 每个导出函数的实现的主源文件 (mycomponent_dll.cpp)。编译器还会生成一个接口描述语言 (IDL) 文件 (mycomponent_idl.idl),其中包含组件类型库、接口和类的规范以及相关的 GUID。(GUID 是“全局唯一标识符”的缩写,是一个 128 位整数,保证始终唯一。)

接下来创建的是 C++ 类定义和实现文件(myclass_com.hppmyclass_com.cpp)。除了这些源文件之外,编译器还生成一个 DLL 导出文件 (mycomponent.def) 和一个资源脚本。

创建接口定义

构建过程的第二步是在步骤 1 中生成的 IDL 文件 (mycomponent_idl.idl) 上调用 IDL 编译器,创建接口头文件 (mycomponent_idl.h)、接口 GUID 文件 (mycomponent_idl_i.c) 和组件类型库文件 (mycomponent_idl.tlb)。接口头文件包含基于 IDL 文件中接口定义的类型定义和函数声明。接口 GUID 文件包含 IDL 文件中所有接口的 GUID 定义。组件类型库文件包含组件公开的所有类型和对象的二进制表示。

C++ 编译

第三步将步骤 1 和 2 中生成的所有 C/C++源文件编译为目标代码。此时包含一个包含一组 C++ 模板类 (mclcomclass.h) 的附加文件。该文件包含所有必要的 COM 基类的模板实现,以及错误处理和注册代码。

链接和资源绑定

第四步,生成组件的最终 DLL。此步骤调用步骤 3 中生成的目标文件和必要的 MATLAB® 库上的链接器来生成 DLL 组件 (mycomponent_1_0.dll)。然后,在 DLL 上调用资源编译器以及步骤 1 中生成的资源脚本,以将步骤 2 中生成的类型库文件绑定到完成的 DLL 中。

DLL 的注册

最后的构建步骤是在系统上注册 DLL,如注册 COM 组件