我用Matlab 2013编写了一个小程序,我在我的dll文件中看到了所有函数:Test.TestMethods
。
我将其作为参考添加到我的.NET项目中,并从Matlab bin\win64\v2.0文件夹中添加了MWArray
dll文件。
** 更新:应用程序在Matlab生成的代码的此行崩溃:
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.
我不知道从哪里开始...
编辑1:这是构造函数(还有一个静态构造函数):
.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
MWArray
可能依赖于Matlab文件夹中存在的其他dll之一)。尝试复制所有dll并查看是否有所不同。 - Tejas Sharma