C# matlab混合编程时出现的异常解决方法

最近项目涉及到用编好的matlab函数生成dll文件供C#调用,其中出现了许多问题,现在我将这些问题汇总,写篇博文。


1.使用deploytool工具生成的dll文件后,C#调用dll文件出现“未找到或是无法加载dll”文件的错误


此类错误一般都是.NET版本的错误,需要做的是首先将matlab complier的环境变量设置好,我的路径是:d:\Program Files\MATLAB\MATLAB Compiler Runtime\v717\runtime\win64。将此路径添加到环境变量中。


然后matlab中输入deploytool命令出现对话框,注意在Project-》Build之前记得打开Project->settings,然后将其中的.NET版本设置成3.5版本,有些较老的VS可能不能识别.NET4.0

这样,基本不会出现上述的错误。


2.调用dll后运行时出现异常

为了能让matlab识别数组类型,需要用到MWArray.dll文件,MWArray.dll文件可以在matlab安装路径下找到,例如:
D:\ProgramFiles\MATLAB\R2010b\toolbox\dotnetbuilder\bin\win32\v2.0MWArray是用来将C#数据类型转换为matlab能够识别的类型。


这种情况一般是需要配置matlab runtime,与上述方法基本相同,如果不行的话,建议使用老版本的VS比如VS2008,这样问题基本可以解决。

你可能感兴趣的:(C# matlab混合编程时出现的异常解决方法)