Main Content

创建 COM 对象

使用 actxserver 函数,对动态链接库 (DLL) 组件创建一个进程内服务器,对可执行文件 (EXE) 组件创建一个进程外服务器。

实例化 DLL 组件

要为作为动态链接库 (DLL) 实现的组件创建一个服务器,请使用 actxserver 函数。MATLAB® 在包含客户端应用程序的同一进程中创建组件实例。

当与 DLL 组件结合使用时,actxserver 的语法是 actxserver(ProgID),其中 ProgID 是组件的编程标识符。

actxserver 返回对象的主接口的句柄。在其他 COM 函数调用中使用此句柄来引用该对象。您还可以使用该句柄来获取对象的更多接口。有关使用接口的详细信息,请参阅COM Object Interfaces

Microsoft® ActiveX® 控件不同,服务器显示的任何用户界面都显示在单独的窗口中。

您不能在 64 位 MATLAB 应用程序中使用 32 位进程内 DLL COM 对象。有关此限制的信息,请参阅 Why am I not able to use 32-bit DLL COM Objects in 64-bit MATLAB?

实例化 EXE 组件

您可以使用 actxserver 函数为实现为可执行文件 (EXE) 的组件创建一个服务器。在这种情况下,MATLAB 在进程外服务器中实例化组件。

用于创建可执行文件的 actxserver 的语法是 actxserver(ProgID, sysname)ProgID 是组件的编程标识符,sysname 是在配置分布式 COM (DCOM) 系统中使用的可选参量。

actxserver 返回 COM 对象的主接口的句柄。在其他 COM 函数调用中使用此句柄来引用该对象。您还可以使用该句柄来获取对象的更多接口。有关使用接口的详细信息,请参阅COM Object Interfaces

服务器显示的任何用户界面都显示在单独的窗口中。

此示例创建一个运行 Microsoft Excel® 电子表格程序的 COM 服务器应用程序。句柄被分配给 h

h = actxserver('Excel.Application')

MATLAB 会转而显示以下结果:

h =
    COM.excel.application

MATLAB 可以以编程方式连接到已在计算机上运行的 COM 自动化服务器应用程序的实例。要获得对此类应用程序的引用,请使用 actxGetRunningServer 函数。

此示例获取对 Excel 程序的引用,该程序必须已在您的系统上运行。返回的句柄被分配给 h

h = actxGetRunningServer('Excel.Application')

MATLAB 会转而显示以下结果:

h =
    COM.excel.application

另请参阅

|