您好,欢迎来到五一七教育网。
搜索
您的当前位置:首页matlab打包方法

matlab打包方法

来源:五一七教育网


MATLAB与Delphi混合编程及软件打包实例——COM方式

利用Matlab的COM Builder工具可以将所需的Matlab功能自动转化为一个COM组件,供其它应用程序调用,这种方式可以脱离Matlab环境运行。

版本:MATLAB7.0.4, Delphi7.0, Microsoft Visual C/C++ 6.0

(注:MATLAB要安装在不含空格的英文目录下)

1. 设置编译器:

在MATLAB命令窗口里输入 mbuild -setup 和 mex -setup, 选择已安装的编译器 Microsoft Visual C/C++ 6.0 。

2. 设置系统路径:

我的电脑->属性->高级->环境变量->用户变量,分别选择include, lib, PATH变量,选择编辑,在变量值后添加(注意在前面加;):

include:

;D:\\MATLAB704\\extern\\include

lib:

;D:\\MATLAB704\\extern\\lib\\win32\\microsoft\\msvc60

PATH:

;D:\\MATLAB704\\bin\\win32

3. 编写MATLAB的M函数(只能是函数不能是文件)。文件名和函数名一致。

如: MyPlot.m

function MyPlot(x,y)

plot(x,y);

4. 用MATLAB的COM Builder工具编译生成COM对象:

a. 创建工程:

选择FILE->New Project

Component name选项:设置com组件的名称,注意不要和上面添加的m文件重名。(MyP)

Class name选项:设置类名称。一般将鼠标点击空白位置,系统会自动生成类名。(MyPclass)

Project version选项:版本号。系统默认为1.0,将来要修改或添加其他函数时,可以修改此选项为2.0,3.0等。

Project directory选项:工程所在目录。

Complier options选项:编译器配置选项,全部选中。

最后单击OK。

b. 管理M文件和MEX文件:

单击Project Files->plotclass->M-files,然后选中comtool菜单Project->Add File选项,添加上面写好的M函数,还可以添加更多的M或MEX函数。

c. 生成组件:

单击Build按钮,选中Com Object选项,这时com-builder会帮你自动编译连接该组件,生成所需要的头文件,源文件,接口描述文件,动态连接库文件,等等。

在右侧Build Status显示框里给出了编译的过程和信息。

在菜单Component->Component Info里有关于接口、类、库的信息。

在工程所在目录里,出现了两个子文件夹,distrib和src,里面有其他应用程序需要用到的文件、库、资源、接口等。distrib子目录下会生成一个DLL文件,生成的DLL文件自动注册到系统中。

d. 打包和分发组件:

选择Component->Package Component,选中Include MCR选项,点击Create...创建一个自解压的可执行程序。生成的MyP.exe可执行文件存放在distrib子目录下,当应用程序在其他电脑上使用时,需先执行此.exe文件注册组件。

5. Delphi调用COM组件:

a. 加入COM组件:

Project->Import Type Library…,选择刚生成的MyP_1_0.dll文件,点击Install…按钮,安装组件,选择IntoNewPackage,设置Package名称和目录。选择Compile编译生成组件。

在组件面板中找到ActiveX选项卡,把组件MyPClass放到界面上。默认命名为MyPclass1。

b. 使用COM组件:

在界面上放置一个按钮,编辑该按钮的事件,修改其代码如下:

procedure TForm1.Button1Click(Sender: TObject);

var

x , y : OleVariant;

i : integer;

begin

x := VarArrayCreate([1,10], varDouble);

y := VarArrayCreate([1,10], varDouble);

for i := 1 to 10 do

begin

x[i] := i;

y[i] := i*(i-5);

end;

MyPclass1.MyPlot(x,y);

end;

6. 软件打包:

为了将Matlab产生的组件注册文件MyP.exe和Delphi应用软件封装打包,可以利用InstallShield Developer 8来实现。

a. 在Application Data->Files and Folders中设置软件包含的文件。

b. 在Behavior and Logic->Custom Actions中添加OnFirstUIAfter函数,并在末尾加入以下两行:

Delay(2);

if (LaunchAppAndWait(INSTALLDIR+\") then

MessageBox(\"Error in launching MyP.exe!\

endif;

作用是:在第一步安装过程结束后,运行安装目录下的\\MyP\\MyP.exe文件。

c. 编译:Build

d. 发布:Distribute,即生成安装软件,运行setup.exe即可安装软件,且自动注册Matlab组件。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 517ttc.cn 版权所有 赣ICP备2024042791号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务