matlab 与 Delphi 混合编程

matlab 与 Delphi 混合编程

  (2010-12-04 15:39:52)
标签: 

技术

 

编程

 

matlab

 

delphi

 

杂谈

分类: 编程

matlab 6.5+vc6.0

利用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函数(只能是函数不能是文件)。文件名和函数名一致。
4. 用MATLAB的COM Builder工具编译生成COM对象:

a. 创建工程:
   选择FILE->New Project
   Component name选项:设置com组件的名称,注意不要和上面添加的m文件重名。(MyP)
   Class name选项:设置类名称。一般将鼠标点击空白位置,系统会自动生成类名。(MyPclass)
   Project version选项:版本号。系统默认为1.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会帮你自动编译连接该组件,生成所需要的头文件,源文件,接口描述文件,动态连接库文件,等等。
     在工程所在目录里,出现了两个子文件夹,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!",WARNING);
      endif;
   作用是:在第一步安装过程结束后,运行安装目录下的\MyP\MyP.exe文件。

c. 编译:Build

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

 

Matlab7.5+vs2005

Matlab7.5之后,支持生成.NET类型的组件,供C#等语言调用。
同时仍然支持COM类型的组件,供VB、Dephi、PB等语言调用。

一、准备工作
安装Matlab;
安装Visual Studio 2005或者更高版本;
安装 MCRInstall.exe,我安装完Matlab之后在这里找得的:C:"Program Files"MATLAB"R2008b"toolbox"compiler"deploy"win32
点 击:我的电脑-属性-高级-环境变量-系统变量-PATH-编辑,在变量值输入框中,不要删除以前的字符串,在最前面加入MCR的安装路径, 如:C:"Program Files"MATLAB"MATLAB Compiler Runtime"v79"bin"win32;
然后确定、保存、重启电脑。
(这两步完全不理解是什么原因,直到安装了Matlab 2008b,仔细阅读它生成的readme.txt才知道)

二、写个用于测试的m文件

三、启动Matlab,新建Deployment项目
自己选择项目保存目录和项目名,如D:"和MatMagic.prj
类 型选择.NET Component,如果你要生成更通用的COM组件,选择Generic COM Component。添加刚才的m文件到这个新建的项目中去。点击Build the project按钮等大约1分钟,才能Build完成。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值