Matlab和Visual C++的混合编程(3)

时间:2025-02-24

Matlab和Visual C++的混合编程

DLL、M-MEX DLL、Shared M-DLL等;选择是C程序还是C++程序;选取Debug、Release模式;选择是否生成Main函数;是否需要支持图形。

3) 点击“Finish”,出现对话框要求选择添加到工程中的m源文件,选择所要添加的m文件,这时可看到Visual C++调用MCC生成一个混合m文件和C++文件的工程。在“File View”选项卡中可以看到添加的m文件和自动生成的C++文件。编译之后就可以实现m文件代码的功能。

注意事项:

1) 加到Microsoft Visual C++工程的文件应当为一个m函数文件,而不能是一个Script文件,否则会出现错误提示;

2) 如果需要改动,可以通过在Visual C++工作区中直接修改m文件,重新编译即可。 通过Add-in实现Matlab与Visual C++的混合编程虽然简便快捷,但仍然有一定的不足:如目前并不支持所有的Matlab的函数;生成的程序代码繁杂等。“mbuild -setup”只是将C/C++数学库文件复制到Microsoft Visual C++目录,通过查看一下C/C++数学库,C/C++图形库的帮助说明,可以发现很多图像处理的函数,如imhist函数,edge函数都不在库里,所以很多图像处理的函数并不能通过Add-in的方式,实现Matlab的各种图像处理到Visual C++的移植。

2.3 Matcom

MathTools 公司推出的 Matcom4.5,可以把 Matlab 的m文件转成相同功能的C++代码,将其放置到Visual C++工程的适当位置即可。Matcom编译m文件,先将m文件按照与Matcom的cpp库的对应关系翻译为cpp源代码,然后用对应版本的c编译器将cpp文件编译成相应的exe或dll文件,所以第一次运行要指定c编译器的路径,这一工作在安装Matcom时自动完成,指定好的编译信息写在Matcom\bin\matcom.ini文件中。Matcom4.5版中使用TeeChart3.0 OCX控件,因而它支持图形操作。

运用Matcom集成Matlab和Visual C++的步骤:

1) 运行Mideva在主界面上直接打开m文件,在菜单中选择compile to dll,输入要编译的m文件名,然后在Matcom的debug目录下(这个目录可以自定义)可以找到这样的编译好的.c、.h、.cpp、.lib、.dll、.exp等文件。

2) 将上述的.h和.cpp文件加入工程中,并在相应的文件中加入#include “stdafx.h”。

3) 添加连接库,在Visual C++的Tools\option\directory\下的include选项中加入matcom目录的lib(包含matcom.h)。

4) 添加matcom目录的lib路径中的v4501.lib(根据matcom版本的不同,这个lib的名字也不一样,但是matcom的lib路径中只有一个lib)到Visual C++所建立的工程中。

5) 修改C++源代码:

1、 在头文件处包含matlib.h,即加入#define MLIB 0和#include “matlib.h”;

2、 在类成员函数的InitInstance中调用InitM启动对Matlab函数的调用,可加入如下代码TRACE0( “initM\n” );initM( stin, stout, sterr );;

3、 在类析构函数中调用exitM()结束对Matlab函数的调用;

4、 在程序中合适的位置插入经Matcom翻译过后的C++源码,但要注意在类构造函数中不要调用任何Matlab函数;

5、 编译运行程序。

利用Matcom可方便地对m文件转换,生成的代码可读性很好,而且转换同时可生成可供Visual C++调用的动态连接库,其使用和一般的动态库一样。再者Matcom不仅可转换独立的不依赖于其它m文件的m文件,亦可转换调用其它m文件的m文件嵌套,条件是所调用的m文件在同一个目录下面。

利用Matcom存在的问题跟利用Matlab Add-in存在的问题一样,这种转换方法只支持C/C++数学库,C/C++图形库中所提供的函数,超出此范围的Matlab图像处理函数目前还没有办法成功编译。

2.4 Matlab自身的编译器

Matlab自身的编译器可将Matlab的m文件转换为为C或C++的源代码以产生完全脱离

Matlab和Visual C++的混合编程(3).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219