Matlab与COM应用(二)——Matlab的COM应用

在前面我们说到,在windows下Matlab是符合COM标准的软件,能够与支持COM标准的软件一同集成。

Matlab既可以作为服务器也可以作为客户端,当Matlab使用COM技术控制其他引用程序时,就作为客户端存在;如果从其他应用程序中控制Matlab,则Matlab作为服务器存在。Matlab支持四种COM客户端/服务器应用:

Matlab客户端和进程内服务:Matlab调用DLL文件或者ActiveX控件(比如MSCal.Calendar)

Matlab客户端和进程外服务:Matlab调用EXE文件或者应用程序(比如Excel)

Matlab服务器和Matlab自动化服务:其他开发平台控制Matlab,是Matlab成为其后台服务(比如VB)

Matlab服务器和Matlab计算引擎:计算语言调用Matlab算法和功能(比如vc++、Fortran)


前两者就是在Matlab中控制其他COM组件,也就是说,利用M语言编程或者Matlab指令打开第三方COM组件并进行相关操作,此时Matlab可以针对COM组件的属性、方法和事件进行操作。它们的关系如下:

<ignore_js_op>guest.jpg 

自动化服务与进程外服务正好相反,此时程序员使用某些应用程序开发语言(VC++、VBA)来开发客户端应用程序,通过COM标准,将Matlab作为服务器在后台运行,而Matlab充分发挥其最为科学计算软件的强大数学分析处理功能。

注意:ActiveX是没法调用其他应用程序的哦,故上面没有说与内进程服务相反

另外科学计算编程语言(VC++、Fortran等)可以通过计算引擎直接调用Matlab现成的算法和相关功能,此时Matlab作为计算引擎服务器存在,而VC++或者Fortran作为客户端。两者通过IEngine接口连接起来。由于计算引擎是扩展编程的内容,是接口技术直接的应用,在前面我们提到该教程中不谈接口,故我们在此不做具体介绍IEngine。

<ignore_js_op>server.jpg

转自 http://www.matlabsky.com/forum.php?mod=viewthread&tid=1164

原文地址:https://www.cnblogs.com/renly/p/2859802.html