由于项目开发需要,稍微研究了下C# 调用Matlab生成的动态库dll,实验过程中遇到的一些问题,按照网上的许多办法没有用,记录下自己的解决过程。
Matlab打包为.net动态库的过程我就不再详述,网上靠谱的教程比较多,我只拿到matlab生成的动态库文件和版本信息,首先需要根据生成dll的matlab的版本安装对应的matlab 运行时,版本一定要保持一致。
其次,在安装完成后,需要在系统环境变量增加额外的配置,具体配置如下图所示:
其次,需要引入你要调用的dll和matlab运行时安装路径下的动态库MWArray.dll,该文件路径如下图所示:
遇到该问题:
Class1'的类型初始值设定项引发了异常。”。 内部异常说:“'MathWorks.MATLAB.NET.Utility.MWMCR'的类型初始化程序引发了异常。”。
解决方案:编译环境的目标平台组要设置为与matlab一直,即与你安装的matlab运行时也要一致。
其二:需要按照上面环境变量的配置要求配置好环境变量,配置好环境变量最好重启下电脑,保证正常生效。
其他注意事项:
在调用MWArray类时出现问题,此时应注意你所用的MWArray的环境需要和你的项目平台保持一致。即,引用的win64下的MWArray时,c#的项目平台应该是x64。
问题②
在实例化对象处报错(因为我的环境配置好的,修改环境需要重启电脑,所以就没有去把错误调处来)。报错依然是类型初始化异常。
此时就应该查看MCR(Matlab Runtime)与项目平台以及MATLAB\R2017b\bin\win64三者是否保持一致。
————————————————
参考自博客:
原文链接:https://blog.csdn.net/a345758541/article/details/83893871