将matlab函数转换为vb可用的dll

将matlab函数转换为vb可用的dll

ID:14043303

大小:20.24 KB

页数:7页

时间:2018-07-25

将matlab函数转换为vb可用的dll_第1页
将matlab函数转换为vb可用的dll_第2页
将matlab函数转换为vb可用的dll_第3页
将matlab函数转换为vb可用的dll_第4页
将matlab函数转换为vb可用的dll_第5页
资源描述:

《将matlab函数转换为vb可用的dll》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、【转贴】将Matlab函数转换为VB可用的DLL电脑与信息技术》2000年第1期将Matlab函数转换为VB可用的DLL段晓君 杜小勇 易东云(国防科技大学系统工程与数学系 长沙 410073)摘 要 Matlab是一种很受广大工程技术人员喜爱的数学工具软件,为我们提供了强大的矩阵处理和绘图功能。由于它的界面功能比较弱,给我们开发界面友好的应用或演示系统带来不便。文章介绍了一种用Matcom将Matlab函数转换为VB中可用的动态链接库的方法,操作简单易行。关键词 Matcom Matlab函数 VB 动态链接库0 引 言Matlab是

2、MathWorks公司开发的一种工程计算语言。用这个交互系统可以解决很多工程计算问题,特别当涉及到矩阵和矢量形式的问题时,Matlab提供了强大的矩阵处理和绘图功能,而用C语言或Fortran语言来解决相应的问题则编程量比较大。Matcom是一个从Matlab到C++的编译器,它可以节省用户的运算时间和内存要求。Math-Tools公司利用Matcom技术编写了Mideva工具软件,它可以借用C++编译器将Matlab下的M文件转换为可被VisualBasic、Exe-cl以及Dephi调用的DLL(动态链接库),亦可编译成独立的标准可

3、执行文件,不需装载任何附加产品。本文就M文件到DLL的转换以及在VB中调用这一类DLL两个问题做了一些探讨。文中,我们是基于Mat-lab5.0、VC5.0、VB5.0、Matcom4.0或相应的更高版本的软件进行讨论的。1 M文件到DLL的转换将Matlab的数值计算和绘图功能内嵌到VB中,需要用到Matcom工具。可在网上下载MIDEVA及Matcom,网址为:http://www.mathtools.com。安装Matcom4.0可按照如下步骤:step1 在目录下找到Mat4vc.exe,运行直至完成;step2 在Window

4、s98或95的Dos环境下,运行Mc4reg.exe,并按提示的要求输入使用日期(开始至结束区间:datemonthyear—datemonthyear),并由此产生密码;step3 启动软件MIDEVA。第一次启动时,要输入step2中生成的密码,并按要求输入Matlab和VC所在的目录。要详细了解使用方法,可利用AcrobatReader3.0阅读文件Matcom40docusr-guide.pdf。要将一个m文件编译成DLL,可进行如下操作:启动运行Matcom4的Mideva,点击菜单File/Compiletodl

5、l,选择需要转换的m文件(该文件是你希望它能够作为函数被其他集成环境调用的m文件,假设文件名为yourfile.m)。值得注意的是,Mideva对M文件有一定的要求,即该文件必须是一个函数,否则需先在Matlab中将它编辑成无输入无输出的函数,再按照上述操作进行转换。编译之前,还可以在Mideva集成环境的菜单Configuration中配置编译的参数为Debug模式或Release模式。编译完成之后,在对应的Debug或Release目录下,可看到一些编译生成的文件。在VB集成环境中需要用到的文件有两个:yourfile.dll(DL

6、L文件)和yourfile.bas(在VB中声明DLL的模块文件)。为在VB中能调用这类DLL,要求将yourfile.bas和matlib42.bas加入到你的工程中,并将yourfile.dll以及matlib42.dll拷贝到工程所在的目录下。编译后,我们在VB中的函数名为yourfileinout,其中,in和out分别为函数的输入参数和输出参数的个数,例如c=conv(a,b),编译转换后的函数名为conv21。我们可以在VB下直接调用相应的DLL使用计算功能,不需再到Matlab下进行编译执行。虽然要用到VC,但Matcom

7、不要求用户编写C++的转换源代码,只需直接在VB下调用模板即可。这样,用户不需了解较底层的编程语言,只要基于Matlab和VB,加上Matcom转换工具即可做出涵括数值计算、图形显示、数据库处理及智能交互界面等的软件。2 数据接口VB中要使用DLL,你的工程中需包含DLL的声明文件即模块文件,还要将DLL拷贝到工程文件所在的目录中。事实上,Yourfile.dll中的函数并不能直接与集成环境进行数据交换,它只能通过与文件句柄类似的矩阵句柄进行接口。句柄用一个32位的矩阵整数表示,它们可被创建,也可被删除,通过它们可以对矩阵数据进行操作,

8、故而集成环境与DLL之间需要一个媒介。Math-Tools提供了一个单独的C++库文件Matlib42.dll以及相应的模块文件Matlib42.bas,它相当于VB集成环境与DLL之间的代理,在这一DLL

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。