C#调用matlab中出现的一个棘手问题

C#调用matlab编写的程序时,要先将m文件在matlab中打包,然后将打包好的dll文件添加到C#的‘引用’栏。(参考https://blog.csdn.net/a345758541/article/details/83893871);

说一下我遇到的问题,出现数据初始化的问题,报错三个,解决办法:matlab程序在打包时要确认文件所在位置的目录中不要出现中文、空格,否则出现以上错误。

编程环境:VS2019

数据库:SQL Server 2019

数据库工具:SQL Server management Studio 18

 

C#程序运行到调用matlab函数时,出现““MathWorks.MATLAB.NET.Arrays.MWNumericArray”的类型初始值设定项引发异常。”,异常包括,dll文件无法加载。

看到这个异常就知道是调用matlab程序时文件配置出现了问题,但具体是什么原因导致的还真没有头绪,于是我把上面的语句粘贴到百度里,发现出现该问题的原因有:

(1)重新安装MCR(MCR,即MATLAB Components Runtime),它的功能是提供matlab发布程序的运行底层支持,它打爆了MATLAB运行所必需的支持全部库、组件。

MCRInstaller.exe运行环境,网上有对应的下载资源。

(2)build dll文件时,选择的.m文件所在路径不能包含中文或者空格(毕竟用到的VS、SQL Server数据库这些软件都是老外整的,所以文件夹命名的时候就要注意不能出现中文或者空格),

于是我新建了一个纯英文的文件夹,将.m文件在该文件夹的路径下重新build,在VS中重新引用新的dll,程序就运行正确了。

附:我的问题有人在2013年就遇到并解决了,附上大哥的文章,表示敬意,Salute!——https://blog.csdn.net/lisiyi523897080/article/details/8513513

 

posted @ 2021-04-09 19:08  长江中下游  阅读(1459)  评论(1编辑  收藏  举报