创建 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