将matlab文件转成.dll引用
最近在做软件联合开发,期间遇到不少疑惑的地方,希望这篇文章能帮到大家,减少弯路
以下为在matlab操作的部分
1.
MATLAB R2022b :下载matlab compiler 或者matlab compiler SDK 工具箱,或者直接在matlab命令行窗口输入(deploytool),直接点击红字就可以安装
2.安装MATLAB Runtime,如果有就不用安装,在matlab命令行窗口输入 (compiler.runtime.download )会开启下载,我是已经下载好了的
3.去预设项里面看看这个位置是不是有,这个东西,如果没有就重新安装一下matlab吧,或者是下一个这个压缩包,上面也有网址
C:\Users\a\AppData\Local\Temp\a\MCRInstaller9.13\MATLAB_Runtime_R2022b_Update_7_win64.zip
4.
如果上述工作完成了,就会在APP——应用程序部署,看到一个名为Library Complier的工具箱,之后打包程序都会用到它
后面再教如何再matlab里面打包.dll文件
以下为配置环境的部分
5.
右击“此电脑“——”属性“——”高级系统设置“,
点击“新建“添加环境变量,该地址如果不知道的,可以在桌面右击Matlab图标——打开文件所在位置,就会出现以下画面,点击”win64“,复制蓝色!!地址
6.
对mwcomutil.dll进行注册
在左下角快捷栏里面输入“cmd“,然后点击以管理员身份运行
弹出以下窗口,在蓝色窗口位置输入(regsvr32 mwcomutil.dll),运行注册
以下为打包部分
7.
需要把matlab代码做成function,简单地画一个正弦函数吧,或者是把一个文件保存在运行路径下(我这里直接保存在桌面了),看看是不是真的运行成功了
8.
打开刚刚说的Library Comliler
选择.NET Assembly ,添加刚刚保存的function文件,就可以看到Namespace中出现如下画面,最后Package,我也是先保存在桌面,命名为test1app(这这个名字等会要用到,记住)
9.
这边新建一个VS窗口文件,别选错了,选尾号.NET Framework(刚开始就是选错了,咱对 VS真的不熟 ,cry)
在我们编写程序之前,需要做重要的一步,需要手动保存两个.dll文件到新建的VS文件下
打开新建VS文件,bin——debug,可以看到里面,什么都没有
(a)在matlab的文件所在位置,找到toolbox,里面有个dotnebuilder
顺着bin——win64——v4.0的路径,
我的路径是这个D:\matlab\toolbox\dotnetbuilder\bin\win64\v4.0
找到MWArry.dll,复制到上述的那个VS的文件夹里面,
(b)打开刚刚打包的那个test1app文件,选尾号only结尾的那个文件,选那个名字短一点的.dll文件,复制到上述的那个VS的文件夹里面,
操作好之后如下,等会要调用的
10.
在VS窗口,添加引用,右击 引用——浏览
添加刚刚那两个.dll文件
添加成功之后,就可以看到下面这两个东西
11.
为我们的程序添加一个按钮吧,按下按钮之后,VS调用MATLAB
在前头加引以下语句!!
using MathWorks.MATLAB.NET.Arrays;
using MathWorks.MATLAB.NET.Utility;
using test1;
button部分代码如下
test1.Class1 m = new test1.Class1();
m.test1();
12.
还有一步,新建平台,我的是X64,所以平台是X64(不知有没有印象,在步骤5中,出现了win64)
13.
运行一下,OK啦
如果有什么建议和问题欢迎留言o