matlab函数编译dll,vs调用该dll的方法

本文详细介绍了如何使用deploytool工具将matlab的.m文件编译成C++共享库DLL,并在VS2015中通过显示调用方式调用该DLL。编译步骤包括选择Library Compiler,添加导出函数,然后生成DLL。在VS中,新建项目并配置MATLAB C++接口SDK的库目录和附加依赖项,如mclmcr.lib等。调用DLL时需遵循特定顺序,先初始化,再执行功能函数。
摘要由CSDN通过智能技术生成

将matlab的.m文件编译成dll的步骤:

本文只介绍使用deploytool工具编译的方法

  1.   键入deploytool命令,打开deploytool工具

选择第三个选项“Library Compiler"


左上角选择"C++ Shared Library",旁边”Add exported functions"右边点击加号添加要导出的函数,可以添加多个


添加了.m函数后,最右边的"Package"变为绿色可选状态,点击它就可以生成dll了


2  vs调用方法

本文采用vs2015,dll采用显示调用方式(主要是嫌麻烦,只要一个dll,不用.h和.lib文件。)

  • 新建一个调用dll的测试控制台项目
  • 包含matlab 与c++的接口sdk
定位到:右键项目-属性-VC++目录-包含目录,添加..\MATLAB\R2017a\extern\include

库目录添加:..\MATLAB\R2017a\extern\lib\win64\microsoft


链接器-输入-附加依赖项,添加以下几个lib

mclmcr.lib
mclmcrrt.lib

libmx.lib

libmex.lib

libmat.lib

libeng.lib

测试主函数

用deploytool生成dll时,也会生成.h文件,里面有用到的函数声明

如果要使用某个函数,先调用初始化函数(.h文件里面有它的声明),再调用你的功能函数

具体见下面的测试函数,这个是一个图像处理函数,哈哈

  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
matlab2012b windows版在关联vs2012编译器的时候,以及无法编译dll。 原因就是matlab默认的编译器的目录配置,include目录以及lib目录配置错误造成的。 如果你的vs目录不是默认的,或者windows是32位版本,或者vs版本不是2012,或者你的mt.exe目录不在Windows kits下,那么有可能需要修改附件里面的相关目录的设置(其实就是mbuild配置cl.exe和mt.exe的目录位置,以及mex配置的include和lib的所需目录),mbuild是编译exe的,mex是编译dll的。我的另一个资源仅处理mbuild配置,未处理mex的配置,所以不能成功编译mex。如果你已经下载过我的另一个资源,请替换mexopts目录下的msvc110opts.bat文件的30和31行代码(而不必下载这个资源): set INCLUDE=%VCINSTALLDIR%\INCLUDE;%VCINSTALLDIR%\ATLMFC\INCLUDE;%LINKERDIR%\include\um;%LINKERDIR%\include\shared;%LINKERDIR%\include\WinRT;%INCLUDE% set LIB=%VCINSTALLDIR%\LIB\amd64;%VCINSTALLDIR%\ATLMFC\LIB\amd64;%LINKERDIR%\lib\win8\um\x64;%MATLAB%\extern\lib\win64;%LIB% 附件里有一个word文件,是我修改的注释信息,如果需要手动修改,可以当做帮助来用. mbuild设置方法: 1 把附件相关的4个文件添加到matlab/bin/win64下面的2个相关目录 2 在matlab 里面运行 mbuild -setup, 然后选 y, 再选择2012的那个项目,再选y 3 mbuild应该成功了,此时可以编译为exe文件。 mex设置方法: 1 在matlab 里面运行 mex -setup, 然后选 y, 再选择2012的那个项目,再选y 2 mbuild应该成功了,此时可以编译dll文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值