VC++调用Matlab编写的DLL(混合编程)

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

有的时候,我们在VC里直接实现一个想法比较复杂或者不够理想,但是使用Matlab可以比较轻松的实现或者实现的效果比较理想,这个时候,我们可以选择混合编程的方法,将预想功能模块使用Matlab实现,在将其编译成供VC调用的DLL,从而更好地实现达到的目标。

一. 基本环境:
1. Microsoft Visual Studio 2008 SP1(VC++);
2. MATLAB Compiler Runtime;(MCRInstaller.exe 可在网上下载安装,已安装了Matlab的就不需安装了
3. OS:Windows XP。
二. 基本方法:
1.环境准备:

    首先值得说明的是,经过不断的尝试和搜集资料,发现要想在VC++中调用MATLAB编写的DLL,必须至少要有MATLAB Compiler Runtime环境,也就是说得先安装MCRInstaller.exe(约160M),当然,直接安装MATLAB R2009a(约4.0G)也可以。显然,如果您仅仅想用VC++调用MATLAB编写的DLL,安装MCRInstaller.exe 就足够了,安装完之后看一下系统环境变量的Path里是否已经添加了其路径,如果没有需手动添加,一般会有的。
2.调用细节步骤:
(1)将MATLAB生成的:*.h、*.lib、*.dll 三个文件拷贝到当前项目的目录下。
(2)设置VC++项目的属性:
首先,在“配置属性->C/C++->常规”的“附加包含目录”中添加MCR的include目录的路径,我的路径是:
C:\Program Files\MATLAB\MATLAB Compiler

Matlab打包为dll,并使用C++调用 【代码】Matlab打包为dll,并给Visual Studio调用 阅读详情

相关推荐

VC与Matlab混合编程(在VC中调用DLL)

Matlab 作为当今世界上应用最为广泛的数学软件, 具有非常强大的数值计算、数据分析处理、系统分析、图形显示甚至符号运算的功能。已经在如生物工程,图像处理,语音处理,雷达探空,声纳探水,地震探地,以及控制论,系统论等各个领域得到广泛的应用。它是一个完整的数学平台,在这个平台上,用户只需寥寥数语就可以完成十分复杂的功能,大大提高了工程分析计算、图像处理的效率。但是Matlab 强大的功能只能在它所

hahalxp的专栏 2万+

C++调用matlab编译的动态链接库dll

Matlab在语法上具有诸多的便利性,可以把matlab的代码(.m文件)为动态链接库dll,之后在c++中调用。本文讲解如何操作以及一些细节。

gindar的专栏 2820

VS与Matlab混合编程——调用matlab.dll实现

本人使用的VS2010和Matlab2014a 1.在Matlab中写一个简单的加法函数,例如 function c = add(a,b) c = a + b; end 保存为add.m文件。 在命令窗口输入 mex -setup命令,...

qq_29503183的博客 3618

C++调用matlab生成的动态库

一、Matlab生成DLL 发环境:vs2017+matlab2019b(x64) 安装与vs编译器版本对应的matlab(下载链接Matlab下载_Matlab破解版_Matlab安装包全版本合集) 离线安装后启动程序 破解: 将Crack文件夹下的license_server.lic,license_standalone.lic文件拷贝到安装目录的licenses文件夹下 将Crack/R2019b(对应版本的文件夹)文件夹下的文件拷贝至安装目录 生成DLL 方法一: 命令

weixin_45551020的博客 1226

C++调用MATLAB打包动态dll文件方法

C++与Matlab混合编程

weixin_41504987的博客 2734

C++调用matlab编译动态库方法及相关问题解决

matlab代码编译成动态库,C++调用matlab生成的动态库。下面测试样例是打一张图片,成为cv::Mat格式使用matlab引擎(engine.h)加载到matlab进行显示,主要熟悉Matlab engine的使用方式。说明:在使用matlab编译的exe或者dll,移植到一个没有matlab的电脑时可能无法运行,需要在官网上下载对应的运行时进行安装后,程序才能正常执行。把*.m代码编译成C++代码,但是对于有些m代码中使用了有些库文件、调用了非m代码的函数的函数是无法编译成C++源代码。

静以修身,简以养德 4471

关于MATLAB7.0与vc++6.0通过com接口实现混合编程

我最近在研究VC++ 6.0和

qq245034548的专栏 1777

matlab混合编程设置,matlab c++ 混合编程初始设置

以前做过matlab7与c++的混合编程:将m函数编译成dll给C++调用,从而加快发的进度。但是今天在matlab2008b 下面又做了一遍,发现matlab又改了很多东西,诸如增加了面向对象的的扩展mwArray,于是做笔记如下。() 总体概念matlab 提供了丰富的程序接口,除了matlab最初的版本是用fortran写的之外,后来的版本都是用C写的,因此matlab很容易和C/C++...

weixin_39861669的博客 370

VC++Matlab混合编程的快速实现

VC++Matlab混合编程的快速实现刘建伟吉林大学朝阳校区电子科学与工程学院电子信息工程系( 长春 130026)摘 要: 许多工程软件需要用到复杂的数学算法。VC++能够形成各种用户界面, 并可以直接与系统及底层硬件交换数据。因此研究VC++Matlab混合编程具有很大的实际意义。该文讨论了如何使用Matlab 的Complier 将*.m函数编译为动态链接库DLL, 提供给VC++

zhongchengli的专栏 1627

VC++2010 与 MATLAB 混合编程

由于项目需要,MATLAB混合编程,看了很多的帖子和博客,昨天搞了一整天,今天又忙了一上午才基本上搞定。     为了与win7兼容,matlab应该安装2010以上的版本,我用了MATLAB2011和VC++2010。Matlab7导出的dll在win7下的vc2010中兼容。 1:首先为matlab选择编译器     在命名行窗口输入:mex -setup

tangchaodefeng的专栏 923

MatlabVC++ 混合编程过程详解(含问题部分解答)

<br />MatlabVC++ 混合编程过程详解(含问题部分解答)<br />                                         --by 孤鸿原野<br />    本文以一个简单的函数为例为例,说明MatlabVC++6.0的混合编程过程。<br />Matlab版本:Matlab R2009a<br />VC++版本:VC++6.0 SP3企业版<br />操作系统:Window 7 旗舰版<br />1.   将需要执行代码在Matlab编写.m文件,如编

思考的力量 6461

关于使用vc++调用matlab生成的dll传递数组的问题

       网络上许多vc++调用matlab 的dll的方法使用的都是单值传递参数,但在许多情况下,我们并能确定要传递的参数的大小,那么这个问题如何解决那?我想大家一定想到了使用指针和动态数组,是的,就是这样解决。   第一步将你的matlab程序编译生dll,这个过程有许多的参考资料,这里我就再赘述了。   第二部贴一些实际的代码来个大家分析一下:     我做的是一个求农业

red_hope的专栏 4693

VC++调用MATLAB生成的DLL动态链接库详解

在现代工程发中,MATLAB凭借其强大的数值计算能力、丰富的工具箱以及高效的算法发环境,广泛应用于信号处理、图像识别、控制系统等领域。而VC++作为系统级发语言,具有高效的执行性能和底层硬件控制能力。将MATLAB的M文件编译为DLL并在VC++调用,能够有效融合两者优势,实现算法发效率与系统执行性能的双重提升。本章将介绍MATLABVC++集成调用的基本原理,重点分析为何选择将M文件封装为DLL进行调用,并简要说明整个集成调用的技术流程框架,为后续章节的操作实践与性能优化打下坚实基础。

weixin_30820933的博客 1182

VS2019与matlab 2019a混合编程实例

VS2019与matlab 2019a混合编程实例前言windows环境的配置Matlab 2019a环境的配置Matlab生成库VS2019调用dllVS2019 直接调用Matlab引擎总结列举一些我参考过的博主的文章 前言 最近因为项目需要,需要把matlab工程在vs2019中调用,想着先测试一下这个功能怎么用再进行实际工程的调用,然后…,好家伙,花了一周多的时间在弯路上,最后还是通过我的老电脑才解决的问题,希望能对大家有点点帮助。在网上找的教程很多,我尽量都引用源路径,但是有些是真的记得了,所以

qq_41655891的博客 6029

C++ Matlab混合编程

在C++发过程中,可能需要C++和MATLAB混合编程,比如:别人只会MATLAB,需要和我们的C++一起运行;将创建的.m文件,编译成.dll文件,以供C++调用(3) 在项目属性中的 VC++目录下的 库目录添加“Matlab安装目录\extern\lib\win64\microsoft;首先新建一个目录,在目录下添加mtest.m文件,代码如下,将动态链接库MatDll.dll文件拷贝至目录。C++调用MATLAB:用于C++的MATLAB引擎API:将MATLAB函数编译为C++动态库。

huanfei8895的博客 2571

混合编程---c++调用matlab生成的dll----findCircles的应用

最近有个任务要对如下图找其中的圆圈,在opencv上面使用cvHoughCircles效果很好,所以在matlab下试了下imfindcircles函数,发现效果非常的好啊,之前老师提到说图中下半部分有些圆中间的噪声特别多,导致找到,过在matlab强大的找圆能力下,这些噪声都是小意思啦 所以问题便转为怎么在c++中调用matlab了,我选择的是matlab生成动态链接库d

jianjian1992的专栏 4334

VS2017调用MATLAB生成的DLL,再打包成DLL供QT调用

最近经手的项目需要调用MATLAB算法运算,并获取返回的结果,需要先在VS2017中实现调用函数,再将这个函数打包成DLL供QT调用,相当于动态链接库DLL中还套了一个DLL,实现步骤及主义事项如文章所示。

H1596355913的博客 2229
上一篇: VC++播放音频文件和音频数据的方法
下一篇: VC++中文件读、写和其他相关操作汇总
小木头工作室
博客等级 码龄15年 47粉丝 26原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值