从 C# 错误调用 Matlab 函数:“tes.tambah”的类型初始化程序引发异常

Posted

技术标签:

【中文标题】从 C# 错误调用 Matlab 函数:“tes.tambah”的类型初始化程序引发异常【英文标题】:Call Matlab Function from C# error : The type initializer for 'tes.tambah' threw an exception 【发布时间】:2015-08-14 17:11:25 【问题描述】:

我收到了

“'tes.tambah' 的类型初始化器抛出异常..”

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MathWorks.MATLAB.NET.Arrays;
using tes;

namespace panggil_lib_matlab

    public partial class Form1 : Form
    

        public Form1()
        
            InitializeComponent();
        

        private void button1_Click(object sender, EventArgs e)
        
                tambah tbh = new tambah(); 
        
    

这是我的 Matlab 代码:

function [ hasil ] = coba( a,b )
    hasil = a+b;
end

我在这一行收到错误:tambah tbh = new tambah();,这是“InnerException”消息:

System.TypeInitializationException:类型初始化器 “MathWorks.MATLAB.NET.Utility.MWMCR”引发异常。 ---> System.TypeInitializationException:类型初始化程序 'MathWorks.MATLAB.NET.Arrays.MWArray' 引发异常。 ---> System.BadImageFormatException:尝试加载程序 格式不正确。 (来自 HRESULT 的异常:0x8007000B)在 MathWorks.MATLAB.NET.Arrays.MWArray.mclmcrInitialize2(Int32 primaryMode) 在 MathWorks.MATLAB.NET.Arrays.MWArray..cctor() --- 内部异常堆栈跟踪结束 --- 在 MathWorks.MATLAB.NET.Utility.MWMCR..cctor() --- 内部结束 异常堆栈跟踪 --- at tes.tambah..cctor()

我用:

Windows 8.1 64 位 Visual Studio Ultimate 2012(我认为是 32 位) Matlab R2015a 64 位

谁能帮帮我?

【问题讨论】:

改进了一些格式和语法,使标题更加简洁 【参考方案1】:

确保您的应用程序以 x64 而非 AnyCPU 为目标

【讨论】:

以上是关于从 C# 错误调用 Matlab 函数:“tes.tambah”的类型初始化程序引发异常的主要内容,如果未能解决你的问题,请参考以下文章

在从 C# 调用的 Matlab 函数中保存状态

从 C# 应用程序内部调用 Matlab 编译器会引发异常

MATLAB 的堆栈大小是多少?

错误:mclmcr.h:没有这样的文件或目录从 C 调用 matlab 函数

在c#中调用带参数的matlab函数

从c#调用oracle函数给出错误