1. COM生成器(COM Builder)简介
COM(Component Object Model,组件对象模型)是以组件为发布单元的对象模型,是一系列面向对象技术和工具的集合。由于COM是建立在二进制级别上的规范,所以组件对象之间的交互规范不依赖于任何特定的开发语言。使用该集合,软件开发人员可以用不同厂商提供的组件集成他们自己的应用程序。
从6.5版开始,MATLAB提供了COM生成器。COM生成器提供了实现MATLAB独立应用的一种新途径。它能把MATLAB开发的算法做成组件,这些组件作为独立的COM对象,可以直接被C++Builder、Visual Basic或其他支持COM的语言所引用。下面详细介绍如何利用COM Builder生成器实现对nnToolKit工具包的封装。
2. 创建nnToolKit的COM组件
用MATLAB COM生成器创建COM组件是一个简单的过程,只需要4个步骤,即创建工程、管理M文件和MEX文件、生成组件、打包和分发组件。
(1) 创建nnToolKit工程(MATLAB6.5环境下)
在MATLAB命令行中输入命令comtool,打开“MATLAB COM Builder”对话框,它是MATLAB COM生成器的主要工作环境。
在“File”菜单中选择“New Project”选项,将弹出“New Project Setting”对话框,如下图所示。
在“Component name”文本框中输入组件名nnToolKit(DLL文件),该组件名输入后,生成器自动在“Class name”文本框中产生一个同名的类名nnToolKit。“Project version”文本框中为版本号,默认为1.0。“Project directory”文本框为在编译和打包模型时,工程和相关文件的存放位置,这里为“D:MATLAB6p5worknnToolKit”。由于神经网络训练时要用到MATLAB的图形库,故在工程设置界面中要选中“Use Handle Graphics library”复选框,其它默认设置即可。点击“OK”按钮,将在指定目录下自动创建一个新的工程文件nnToolKit.cbl,以后可以通过“File/Open Project”操作打开已生成的nnToolKit.cbl项目文件,来修改该工程。
(2) 管理M文件(神经网络相关函数)
单击“Add File”按钮或从“Project”菜单中选择“Add File…”选项,将已调试好的神经网络相关函数(LmTrain.m、LmSimu.m等)加入到项目中。
(3) 生成nnToolKit组件
定义好工程设置并添加了相关神经网络函数后,通过“Build”菜单中的“COM Object”选项或直接单击“Build”按钮来调用MATLAB编译器,把中间源文件写到D:MATLAB6p5worknnToolKitsrc目录中,将必要的输出文件写到D:MATLAB6p5worknnToolKitdistrib目录中,“Build Status”面板显示生成过程的输出,如下图所示。
(4) 打包和分发组件
一旦模型编译成功并进行了测试,就可以打包并分发了。从“Component”菜单中选择“Package Component”选项,将创建包含如下表所示文件的自解压可执行程序。
自解压文件nnToolKit.exe包含的文件
文 件
功 能
_install.bat
由自解压可执行程序运行的脚本
nnToolKit_1_0.dll
编译后的组件
mglinstaller.exe
MATLAB数学库和图形库安装器
Mwcomutil.dll
COM生成器工具库
mwregsvr.exe
在目标机器上注册DLL可执行程序
自解压可执行程序的名称为nnToolKit.exe。在计算机上运行安装器,将按以下步骤进行:
1) mglinstaller安装MATLAB C/C++数学库和图形库。
2) 添加mglinstaller创建的目录
3) mwregsvr注册mwcomutil.dll和nnToolKit_1_0.dll。
必须在每个需要安装组件的计算机上重复本发布过程,下面详细介绍组件的安装和使用。
(5) 工具包扩展
针对实际需要,有时用户希望能对nnToolKit神经网络工具包进行扩展,增加一些自定义函数,这一过程是非常简单的,步骤如下:
>仿照前一章,编写用户自已的函数(.m)。
>打开工程文件nnToolKit.cbl,将自定义函数加入到工程中。
>编译,打包。
关于打包后的COM组件安装,请详见“nnToolKit工具包安装”。