创建 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.applicationMATLAB 可以以编程方式连接到已在计算机上运行的 COM 自动化服务器应用程序的实例。要获得对此类应用程序的引用,请使用 actxGetRunningServer 函数。
此示例获取对 Excel 程序的引用,该程序必须已在您的系统上运行。返回的句柄被分配给 h。
h = actxGetRunningServer('Excel.Application')
MATLAB 会转而显示以下结果:
h =
COM.excel.application