MATLAB Compiler SDK:打包C# DLL实战

工具:

  • Matlab R2019b
  • Visual Studio 2019(安装.Net Framework)

1. 编写并测试所需打包的Matlab函数

检查并测试你的Matlab程序可运行。

cut-off

2. 使用Matlab Compiler SDK打包

2.1 打开Matlab Compiler SDK

常用有两种方法:

方法一

点击 APP > Library Compiler

Matlab Apps

方法二

在命令行输入deploytool,选择Library Compiler

cut-off

2.2 Compiler Project输出设置

Compiler project

  1. 选择项目类型 .NET Assembly
  2. 选择要导出的函数,多个函数可同时打包在一个DLL中
  3. 输入要生成的DLL的名称
  4. 输入Namespace,缺省则与步骤三名称一致
  5. 设置Class名称
  6. 如果你的matlab函数运行依赖某些文件,放在这里。(e.g. ,csv files, txt files...)
  7. 打包输出。

cut-off

3. 在C#程序中测试打包的函数

3.1 新建C# 控制台应用程序

本文的测试在Visual Studio 2019 C# 控制台应用程序中进行。目标框架为 .Net Framework 4.7.2。

C# Project

3.2 添加引用

想要调用打包好了的Matlab函数,需要向C#项目中添加所需的两个DLL:

  1. 在2.2节中打包好的DLL,本文中为(MATLAB_DLL.dll)。位于Compiler Project保存位置中的 for_redistribution_files_only 文件夹中。
  2. MWArray.dll,该文件位于Matlab安装路径下,Matlab > R2019b > toolbox > dotnetbuilder > bin > win64 > v4.0 > MWArray.dll。同时在安装Matlab Compiler SDK时,该DLL还会被复制到:C > Windows > Microsoft.NET > assembly > GAC_MSIL > MWArray > v4.0_2.19.1.0__e1d84a0da19db86f > MWArray.dll

右击解决方案资源管理器中的 引用 > 添加引用 > 浏览,添加上述两个DLL。

Add DLL

3.3 编写C#代码

using <你打包时设置的Namespace>;

然后就可以通过调用类方法来使用Matlab中的函数。

Code

3.4 设置目标平台为64位

如果直接编译运行上边的代码,程序会抛出异常: "MATLAB_DLL.MatlabAlg”的类型初始值设定项引发异常

由于我们使用的Matlab R2019b是64位的,所以我们需要将C#工程的目标平台设置为x64,方法为右击解决方案管理器中的项目名称(本文中为ConsoleApp)> 属性 > 生成 > 目标平台 > x64。

然后再次编译即可运行啦!

result

4 注意

在其他电脑上运行时,若电脑上没有安装对应的Matlab(本文中为R2019b),则需要安装对应版本(R2019b)的Matlab Compiler Runtime,可以在MathWork官网上找到且免费。

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空