wwb624 发表于 2010-2-1 10:07

VC6.0和Matlab7.1混合编程问题

我在Win32控制台下编写了下面一个短小的程序:

#include "libDotMul.h"
#include "mclmcr.h"
#include "mclcppclass.h"
#include <iostream.h>
void main()
{
double B = {1.0, 2.0, 3.0, 4.0};
double C = {4.0, 5.0, 6.0, 7.0};
double A = {0.0};
mwArray Temp_A(2, 2, mxDOUBLE_CLASS);//出错
mwArray Temp_B(2, 2, mxDOUBLE_CLASS);
mwArray Temp_C(2, 2, mxDOUBLE_CLASS);
Temp_B.SetData(B, 4);
Temp_C.SetData(C, 4);
DotMul(1, Temp_A, Temp_B, Temp_C);//Matlab通过DLL转化过来的简单函数
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 2; j++)
{
   A = Temp_A(i+1,j+1);
}
}
for (i = 0; i < 4; i++)
{
std::cout<<A<<std::endl;
}
}

编译通过,但是单步调试的时候发现,一运行到mwArray Temp_A(2, 2, mxDOUBLE_CLASS);就出错;
这里只是一个简单的定义,为什么出错?错误如下:
Unhandled exception in 11.exe: 0xC0000005: Access Violation

请问:这是怎么回事?如果改正呢?
页: [1]
查看完整版本: VC6.0和Matlab7.1混合编程问题