加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在C#类库中使用MATLAB MWArray.dll

发布时间:2020-12-16 02:01:29 所属栏目:百科 来源:网络整理
导读:我正在尝试在C#类库中使用带有Matlab .net Complier的MATLAB构建的.dll,但是每次初始化MWArray.dll的对象时程序都会抛出异常,例如: MWNumericArray m = new MWNumericArra(10,10); 例外: System.TypeInitializationException was caught HResult=-21462330
我正在尝试在C#类库中使用带有Matlab .net Complier的MATLAB构建的.dll,但是每次初始化MWArray.dll的对象时程序都会抛出异常,例如:

MWNumericArray m = new MWNumericArra(10,10);

例外:

System.TypeInitializationException was caught
  HResult=-2146233036
  Message=The type initializer for 'MathWorks.MATLAB.NET.Arrays.MWNumericArray' threw an exception.
  Source=MWArray
  TypeName=MathWorks.MATLAB.NET.Arrays.MWNumericArray
  StackTrace:
       at MathWorks.MATLAB.NET.Arrays.MWNumericArray.op_Implicit(Double[] values)
       at VolCalc.Vol.CalculateVolatility(Double[] data)
  InnerException: System.TypeInitializationException
       HResult=-2146233036
       Message=The type initializer for 'MathWorks.MATLAB.NET.Arrays.MWIndexArray' threw an exception.
       Source=MWArray
       TypeName=MathWorks.MATLAB.NET.Arrays.MWIndexArray
       StackTrace:
            at MathWorks.MATLAB.NET.Arrays.MWIndexArray..ctor()
            at MathWorks.MATLAB.NET.Arrays.MWNumericArray..ctor(Double scalar)
            at MathWorks.MATLAB.NET.Arrays.MWNumericArray.get__Inf()
            at MathWorks.MATLAB.NET.Arrays.MWNumericArray..cctor()
       InnerException: System.Security.SecurityException
            HResult=-2146233078
            Message=Request for the permission of type 'System.Security.Permissions.SecurityPermission,mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089' failed.
            Source=MWArray
            StackTrace:
                 at MathWorks.MATLAB.NET.Utility.MWSafeHandle..ctor()
                 at MathWorks.MATLAB.NET.Arrays.MWArray..ctor()
                 at MathWorks.MATLAB.NET.Arrays.MWIndexArray..ctor()
                 at MathWorks.MATLAB.NET.Arrays.MWNumericArray..ctor(MWArrayComponent arrayComponent,Int32 rows,Int32 columns)
                 at MathWorks.MATLAB.NET.Arrays.MWIndexArray..cctor()
            InnerException:

我尝试在Console App中执行此操作,并且工作正常,但我需要.dll使用matlab内置的.dll.

有任何想法吗?

解决方法

帮助我的是确保C#应用程序和matlab模块在相同的架构下 – 意思是32位或64位.

如果您的Matlab是64位 – 尝试将C#项目更改为64位

看这篇文章:
Creating a shared library (.NET Assembly) in Matlab and using it in C#

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读