我可以运行visual studio调试器并调试该程序的第一部分(使用MWNumericArray
)。一旦我尝试实例化由MatLab生成的ankur_dummy
中的DLL
类,它就会崩溃。我得到“ VSHost.exe已停止工作”
如果我执行“调试 - >启动而不调试”,它运行正常。
所以调试器似乎没有Matlab dll
的问题,只是生成的问题。
运行MCR 7.15 X64
有什么想法吗?
static void Main(string[] args)
{
try
{
double[,] testDblArr = new double[2,5];
testDblArr[0,0] = 1;
testDblArr[0,1] = 2;
testDblArr[0,2] = 3;
testDblArr[0,3] = 4;
testDblArr[0,4] = 5;
testDblArr[1,0] = 1.1;
testDblArr[1,1] = 1.2;
testDblArr[1,2] = 1.3;
testDblArr[1,3] = 1.4;
testDblArr[1,4] = 1.5;
MWNumericArray testArr = new MWNumericArray( testDblArr );
DisplayNumericArrary(testArr);
ankur_dummy_2011.ankur_dummy test = new ankur_dummy();
MathWorks.MATLAB.NET.Arrays.MWArray arr = test.dummy_function();
MWNumericArray nArr = arr as MWNumericArray;
if (nArr == null)
{
System.Console.WriteLine("Not a NumericArrary!");
return;
}
DisplayNumericArrary(nArr);
arr.Dispose();
testArr.Dispose();
System.Console.WriteLine("Done");
System.Console.ReadKey();
}
catch (Exception ex)
{
System.Console.WriteLine("Ex = ({0})", ex);
}
}
答案 0 :(得分:1)
好的,我找到了一个简单的解决方案。
禁用Visual Studio托管过程。
在项目设置下 - >调试 - >启用调试器
取消选中“启用Visual Studio托管流程”
我会注意到在另一台机器上(实际上是创建DLL的人),运行Win7而不是我的Win8.1,并且安装了MatLab(不仅仅是MCR),他甚至可以通过视觉调试工作室托管过程启用。他也可以使用不同版本的Visual Studio,但不确定。