【C#】VS2015调用Matlab2016a生成的dll文件

系统环境:

  1. 用于生成dll文件的电脑:VS2015专业版,Matlab2016a,均为64位
  2. 用于调用dll文件的电脑:VS2015社区版,64位

生成dll文件

这部分网上教程非常多,可以参考:[MATLAB]将.m文件生成dll文件

主要注意的几点:

  • visual studio要安装专业版,详见官方System Requirements and Supported Compilers
  • VS安装时,自定义功能时要选择“适用于Visual C++2015的公共工具”和“Visual Studio扩展性工具”。
  • Matlab要是已经**状态。

首次生成的步骤分3步(后面再生成只需要用deploytool):

  • Matlab的命令行窗口输入mbuild -setup
  • Matlab的命令行窗口输入mex -setup C++;
  • Matlab的命令行窗口输入deploytool,选择Library Compiler

调用dll

主要也是平台匹配的问题:

  • VS2015的安装需要选择“适用于Visual C++2015的公共工具”和“Visual Studio扩展性工具”。(调用可以用社区版的VS,生成只能用专业版)
  • 添加导出的dll文件和MWArray.dll(C:\ProgramFiles\MATLAB\R2016a\toolbox\dotnetbuilder\bin\win64\v2.0)的引用;
  • 工程文件的首行添加如下信息
using MathWorks.MATLAB.NET.Utility;
using MathWorks.MATLAB.NET.Arrays;
using matlab_class;
  • VS2015的“属性——>生成——>目标平台” 选择 x64

VS2015的参考安装项如下
【C#】VS2015调用Matlab2016a生成的dll文件

【C#】VS2015调用Matlab2016a生成的dll文件