打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VC++与Matlab混合编程之引擎操作详解
MATLAB与VisualC++结合的方法有多种,但其实用程度与范围不同。常用的方法有: (1)将Matlab程序编译成C/C++源文件并嵌入VC++;(2)在C/C++程序中利用Matlabengine调用Matlab函数;(3)在C/C++程序中直接使用MatlabC/C++MathLibrary;(4)将.m文件编译成*.dll文件嵌入到VC++的程序中。基于实用性、易用性的考虑,本文主要讨论第四种方法。另外随着Matlab版本的升级,原来的mathlibrary已经并入了Compiler之中,是否是mathworks比较推崇DLL的方式呢?本文通过一个简单的例子来说明Matlab和VC++混编的具体过程(环境为Matlab6.5&VC++6.0)。 1Matlab编译环境的设置 为了能够使用Matlab的Complier将*.m函数文件编译为动态链接库DLL,必须对Matlab的环境做出相应的配置。具体做法如下: 在Matlab的CommandWindow下输入命令mbuild–setup,并根据Matlab的提示选择合适的编译器,笔者使用的是MicrosoftVisualC++.过程如下 >>mbuild-setup PleasechooseyourcompilerforbuildingstandaloneMATLABapplications: Wouldyoulikembuildtolocateinstalledcompilers[y]/n? Selectacompiler: [1]LccCversion2.4inD:\MATLAB6P5\sys\lcc [2]MicrosoftVisualC/C++version7.0inC:\ProgramFiles\MicrosoftVisualStudio.NET [3]MicrosoftVisualC/C++version6.0inD:\MicrosoftVisualStudio [0]None Compiler:3 Pleaseverifyyourchoices: Compiler:MicrosoftVisualC/C++6.0 Location:D:\MicrosoftVisualStudio Arethesecorrect?([y]/n): 然后,在CommandWindow中输入命令cd(prefdir);mccsavepath;这是为了后面使用Matlab在VC++IDE中的Add-in作准备。然后输入命令mex–setup,以类似的方法配置编译器。至此,Matlab的配置完成。如有疑问,可以参阅Matlab的帮助MatlabCompiler\GettingStarted\Installationandconfiguration一节。 2创建动态链接库(*.DLL) 创建动态链接库主要有两种方法:一种是使用Matlab为VC++IDE提供的Add-in。这种方法比较简单,方便快捷,只要在VC++中创建工程的时候选择MatlabProjectWizard,并且在接下来的Step1中的VisualMatlabApplicationType选择SharedM-DLL就可以了。接下来就是添加*.m文件,进行编译了。另一种方法就是使用Matlab的mcc命令将*.m文件编译为动态链接库(*.DLL)。因为Add-in也是调用Compiler的命令mcc进行编译工作的,而且有时候这个Add-in还会出现不能使用的情况,因此这里主要讨论使用mcc命令的方法。 关于mcc有很多参数可以使用,而且有多种用法,具体的可以参见Matlab的帮助。 这里我们使用命令mcc–Bcsglsharedlib:youlibnamefunction1funcion2…来创建我们所需要的动态链接库DLL文件。其中参数-B表示使用的是BundleFiles作为参数csglsharedlib是-B的参数,意思是生成使用Matlab图形库的C共享动态链接库,youlibname是你想要生成的动态链接库DLL的文件名,注意csglsharedlib与youlibname之间有一个冒号“:”连接,function1为你想要加入到动态链接库DLL中的函数名,如果有多个函数,各个函数名用空格隔开。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
VC++和Matlab(转)
VC与Matlab混合编程(在VC中调用DLL)
c++ 与 matlab 混编
matlab函数编译成dll供Cpp调用的方法
MATLAB7.1与Visual C++6.0混合编程
VC 中使用MATLAB的C 数学库和MCC生成的程序
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服