matlab 与 Delphi 混合编程
(2010-12-04 15:39:52)matlab 6.5+vc6.0
利用Matlab的COM Builder工具可以将所需的Matlab功能自动转化为一个COM组件,供其它应用程序调用,这种方式可以脱离Matlab环境运行。
版本:MATLAB7.0.4, Delphi7.0, Microsoft Visual C/C++ 6.0
(注:MATLAB要安装在不含空格的英文目录下)
1. 设置编译器:
2. 设置系统路径:
include:
lib:
PATH:
3. 编写MATLAB的M函数(只能是函数不能是文件)。文件名和函数名一致。
4. 用MATLAB的COM Builder工具编译生成COM对象:
a. 创建工程:
b. 管理M文件和MEX文件:
c. 生成组件:
d. 打包和分发组件:
5. Delphi调用COM组件:
a. 加入COM组件:
b. 使用COM组件:
6. 软件打包:
a. 在Application Data->Files and Folders中设置软件包含的文件。
b. 在Behavior and Logic->Custom Actions中添加OnFirstUIAfter函数,并在末尾加入以下两行:
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完成。