我已经使用Matlab R2012a将一些matlab函数编译成.net DLL文件。一切都在按预期工作。我在Windows 7 64bit上使用WPF / C#.net 4.5,我的程序运行正常。
但是我们现在正在Windows 8专业版上转移和测试我们的程序。我们在运行时遇到问题 - 我们当然使用MCR R2012a来运行.dll文件。 我们无法在win8中加载类或函数,程序崩溃。
有没有人遇到过这个问题?如果我们使用Matlab R2013a编译函数会有帮助吗?
答案 0 :(得分:10)
使用Windows 8解决matlab问题的方法是添加
[assembly: MathWorks.MATLAB.NET.Utility.MWMCROption("-nojit")]
在汇编文件中。
我不知道为什么会这样。 nojit-意味着没有及时编译器创建二进制文件。
然而,当我添加这个。它也适用于Windows 8 x64。使用相同的MCR
答案 1 :(得分:0)
我对MCR的大多数问题都与PATH变量的错误值有关。当您在计算机上安装多个MCR时,或者有时甚至只安装一个MCR时,可能会发生这种情况。由于您遇到访问冲突错误,我猜系统可以找到MCR dll,但它找到错误的(例如32位而不是64位)。仔细检查您的PATH环境var并确保它指向MCR dll的正确位置。