C#编程 MWArray 报错 原因以及解决办法

1 篇文章 0 订阅
0 篇文章 0 订阅

未能加载文件或程序集“MWArray, Version=2.11.1.0, Culture=neutral….”

在C#和matlab的混合编程中,会调用Matalb中生成的动态链接库,XXX.dll。在调用过程中会出现,错误信息:“未能加载文件或程序集“MWArray, Version=2.11.1.0, Culture=neutral, PublicKeyToken=e1d84a0da19db86f”或它的某一个依赖项。试图加载格式不正确的程序。”

这个错误出现的原因是没有装matlab,也没有装MCR(MATLAB Compiler Runtime),即为matlab 的开发环境。

如果你装了 Matlab 却依然报上面的错,有两种情况,1,说明你加载的 XXX.dll 生成的matlab版本和你操作系统中安装的不一致,可能需要重新生成dll。2,可能存在的情况为,加载的XXX.dll是在X86的操作系统中生成的,而你的操作系统是X64,这个情况。需要在vs中更改目标平台,改为86。

MCR的路径:

以你安装的matlab 目录为起始目录,我的MCR路径为:
D:\Program Files\MATLAB\R2011a\toolbox\compiler\deploy\win64

这里写图片描述

MCR的作用:

MCR的作用很简单,当你写的程序在其他计算机上运行时,调用了MWArray.dll,却不能够安装matlab的时候,必须安装MCR才可以运行。MCR的安装方式可以简单粗暴的,不断下一步进行,当然,可以看看路径什么的。

我在网上搜了很多种尝试脱离matlab 环境,执行matlab 的 M文件的方法,均以失败告终。有一种非常接近成功的方法是,通过软件Matcom,将M文件转为C++文件执行,有兴趣的可以试一下,它会生成一堆头文件和编译的cpp文件,鉴于我的很多M文件中的函数都是调用关系,实在无法弄懂其中的关系,所以也就跪了。

建议,想尝试Matcom的同学,我当时用的是Matcom 4.5的版本。貌似是我当时能搜到的最新版本,而这个版本貌似是2011年就更新了的(时间我不确定)。有时间研究Matcom,还是多花些时间,将你的M文件用别的语言或者方式,重写一遍吧。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值