我是C ++的初学者。最近,我开始使用C ++进行图像处理。我试图定义和使用简单的函数,如:
Matrix MVE(Matrix R)
{
Matrix *X = P.T();
invX = *X->Inverse();
delete X;
return invX;
}
或
Matrix MVE(Matrix R, double tolerance)
{
int n = R.Y();
int m = R.X();
Matrix X(n,m);
for (int i = 0; i < n; ++i)
M[i][m] = tolerance * R[i][m-1];
return M;
}
在发布模式下没有问题,但是当我在debbug模式下运行时,我收到以下错误:
Windows在plappd.exe中触发了断点。 这可能是由于堆的损坏,这表明plappd.exe或它已加载的任何DLL中的错误。 这也可能是由于用户在plappd.exe具有焦点时按下F12。
我从其他DLL文件调用Matrix类的构造函数和操作。
我尝试从Debug Multithreaded(/ MTd)更改为Debug Multithreaded DLL(/ MDd),正如许多论坛所建议的那样,但它没有帮助解决问题。
有什么建议吗?
提前致谢。
答案 0 :(得分:0)
您是否可以使用某些工具(如Walker Dependency)来检查exe和dll是否使用相同的运行时间? (通常你检查MSVCR **。DLL) exe和dll必须在你的情况下使用相同的运行时间。
修改强> 另外,你说你改变了“从Debug Multithreaded(/ MTd)到Debug Multithreaded DLL(/ MDd)” 两者都是调试模式。由于您的运行时似乎在您的发布配置中正常工作,我想您应该使用相同的: 它应该是多线程(/ MT)或多线程DLL(/ MD)