许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  MATLAB Compiler SDK:打包C# DLL实战

MATLAB Compiler SDK:打包C# DLL实战

阅读数 2965
点赞 30
article_banner

工具:

  • 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官网上找到且免费。


武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks ,Hyperworks, Protel,CAXA,OpenWorks LandMark,MATLAB,Enovia,Winchill,TeamCenter,MathCAD,Ansys, Abaqus,ls-dyna, Fluent, MSC,Bentley,License,UG,ug,catia,Dassault Systèmes,AutoDesk,Altair,autocad,PTC,SolidWorks,Ansys,Siemens PLM Software,Paradigm,Mathworks,Borland,AVEVA,ESRI,hP,Solibri,Progman,Leica,Cadence,IBM,SIMULIA,Citrix,Sybase,Schlumberger,MSC Products...

相关文章
QR Code
微信扫一扫,欢迎咨询~
customer

online

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

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空