从dot net运行Matlab代码

时间:2013-06-20 17:16:58

标签: .net matlab matlab-compiler

我使用matlab 2013编译了一个小程序 我可以在我的dll中看到: Test.TestMethods我的所有职能

我已将其添加为我的dot net项目的参考,并从matlab bin \ win64 \ v2.0文件夹中添加了MWArray dll。

**更新:应用程序在matlabe生成的代码中粉碎此行:

mcr= new MWMCR("", ctfFilePath, embeddedCtfStream, true);

如果我嵌入了ctf文件 - 它会粉碎,如果我没有嵌入它,它会抛出异常。

我已将程序设置为针对X64进行构建。

尝试创建对象后:

Test.TestMethods test = new Test.TestMethods();

我的应用程序崩溃了。 我只能在外部Visual Studio实例中看到:

Unhandled exception at 0x0000000001D36E60 (m_interpreter.dll). 
Access violation reading location 0x00000000A5CE3920.

我不知道从哪里开始......

EDIT1:这是ctor(还有一个静态cctor):

    .method public hidebysig specialname rtspecialname 
        instance void  .ctor() cil managed
{
  // Code size       20 (0x14)
  .maxstack  8
  IL_0000:  ldarg.0
  IL_0001:  call       instance void [mscorlib]System.Object::.ctor()
  IL_0006:  ldsfld     class [mscorlib]System.Exception Test.TestMethods::ex_
  IL_000b:  brfalse.s  IL_0013
  IL_000d:  ldsfld     class [mscorlib]System.Exception Test.TestMethods::ex_
  IL_0012:  throw
  IL_0013:  ret
} // end of method TestMethods::.ctor

1 个答案:

答案 0 :(得分:1)

您不能从.NET 4.5程序集调用MATLAB生成的.NET库,并且在连接VS调试器时它也会崩溃。