第一范文网 - 专业文章范例文档资料分享平台

Delphi与Matlab混合编程的设计与实现

来源:用户分享 时间:2025/5/23 16:12:34 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

图1 MATLAB COM Builder启动操作过程 图2 MATLAB COM Builder窗口

3. 编译M文件

在MATLAB COM Builder中点击File菜单,选择New Project?,弹出New Project Settings窗口;在Component name文本框中输入要生成的COM组件的名字,如curfitclass,输入后会自动产生curfitclass类,并在Classes中出现,可使用Add、Remove增加或删除类;Project version是为了用户方便地管理自己所生成的COM组件而设置的,通过这个版本号,用户可以方便地区分不同时期制作的相同名字的COM组件;Project directory是整个工程存放的目录;因为C代码性能较好,在Compile code in里面推荐选择C;在Compiler options选项框中有三个选项,Use Handle Graphics Library表示使用MATLAB的图形库,即使用画图功能;Build debug version表示生成调试版本的COM组件,调试版本的COM组件在调试的时候如果有错误发生,就会有相应的错误提示信息,可以方便地定位错误发生的地方,而不是Debug版本的COM在出错时不会给出任何的错误提示信息;Show verbose output表示在编译生成COM组件的时候输出详细的过程信息。New Project Settings窗口的设置如图3所示。

New Project Settings窗口设置完毕并点击OK后,需要向建立的类中添加M文件,其方法是在Project Files里面选中要操作的类,单击Add File按钮添加现成的(预先编写好的)m函数文件。本文需把curvefit.m文件加入,这样就为类添加了一个方法。所有函数添加完毕之后,就可以使用菜单Build→COM Object或者单击按纽Build进行编译。当Build Status中出现Standalone DLL build complete.时,表示COM组件已经编译完成,如图4所示。编译完毕之后会建立一个以类命名的文件夹,里面又包含两个文件夹:一个是src,里面存放的是一些中间文件;一个是distrib,里面就是动态链接库形式的COM组件文件,即我们需要的DLL文件。在编译完毕之后,MATLAB会自动注册生成的组件。

图3 New Project Settings设置窗口 图4 COM组件编译完成信息

单击Component→Component Info?可以查看所建组件的详细信息,如图5所示,其中包括组件中的类、方法、属性、事件等。类curfitclass包括方法curvefit()、属性N。可以看出,只需按一定格式设计M文件,COM组件就会自动转换:M文件中的函数被编译为方法,用global声明的全局变量编译为属性,包含注释“%#event”的函数则被声明为事件。

图5 生成的COM组件信息 图6 Delphi中COM组件的安

五、动态调用COM的组件

1. 安装COM组件

启动Delphi,点击Delphi的Project→Impot Type Library?,出现如图6所示的界面。在上面的窗口中找到curfitclass 1.0 Type Library [Version1.0],然后点击Install?按钮就在ActiveX类组件页中出现curfitclass组件,如图7所示,此时就可以应用该组件了。

图7 位于ActiveX类中的curfitclass组件

2. 应用COM组件

在Delphi中新建工程Project1,按图8布置Form1窗体,其中部分组件功能如下表所示。实现的核心代码如下:

Form1中的组件表

组件 设置 功能

搜索更多关于: Delphi与Matlab混合编程的设计与实现 的文档
Delphi与Matlab混合编程的设计与实现.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c943251c0o08njyy27jk4_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top