在Visual Studio 2017异常中使用Matlab 2017 .Net DLL未处理

时间:2018-02-05 15:26:07

标签: c# matlab visual-studio-2017

我正在尝试在C#.Net中开发Visual Studio 2017控制台应用程序。 因此,我使用Matlab Library CompilerMatlab 2017中编写了一些代码,然后为DLL制作Visual Studio 2017。 当我运行时没有错误,但我得到了这个例外:

Exception Unhandled :System.TypeInitializationException: 'The type initializer for 'Trial.CSharpClass' threw an exception.'

我在此地址使用MWArray.dll作为参考:

F:\Program Files\MATLAB\R2017b\toolbox\dotnetbuilder\bin\win64\v4.0\MWArray.dll

以及Trial.dll

以下是我的Matlab addNumbers.m代码:

function output = addNumbers( num1 ,num2 )

output = num1+num2;

end

这是我的Test.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MathWorks.MATLAB.NET.Arrays;
using MathWorks.MATLAB.NET.Utility;
using Trial;

namespace MatlabAndCSharpTrial
{
    class Test
    {
        public static void addNumbers()
        {
            double num1 = 5;
            double num2 = 9;

            CSharpClass obj = new CSharpClass();    // Exception Unhandled is Here

            MWArray output = obj.addNumbers((MWArray)num1, (MWArray)num2);
            Console.WriteLine("Output ==> \n"+output);
            Console.ReadKey();

        }
    }
}

和我的program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MatlabAndCSharpTrial
{
    class Program
    {
        static void Main(string[] args)
        {
            Test.addNumbers();
        }
    }
}

所以我在Matlab 2010Visual Studio 2010上使用了这个项目,并且成功,我在x64中尝试x86Visual Studio 2017问题仍然存在。 那我该怎么办?

修改 当我取代:

CSharpClass obj = new CSharpClass();    
MWArray output = obj.addNumbers((MWArray)num1, (MWArray)num2);

使用:

MWArray output = CSharpClass.addNumbers((MWArray)num1, (MWArray)num2);

我收到此错误:

An object reference is required for the non-static field, method, or property 'CSharpClass.addNumbers(MWArray, MWArray)'

0 个答案:

没有答案