저는 C++의 초보 프로그래머입니다. 최근에 C++로 이미지 처리 작업을 시작했습니다. 나는 정의와 같은 간단한 기능을 사용하는 것을 시도하고있다 :RtlValidateHeap DLL에 잘못된 주소가 지정되었습니다.
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 클래스의 생성자 및 연산을 호출하고 있습니다.
많은 포럼에서 제안 된 것처럼 디버그 다중 스레드 (/ MTd)에서 디버그 다중 스레드 DLL (/ MDd)로 변경해 보았지만 문제를 해결하는 데는 도움이되지 않았습니다.
제안 사항?
미리 감사드립니다.
멀티 - 스레드 모드의 DLL (/ MD)을 릴리스 모드로 실행하면 작동합니다. 반면, 다중 스레드 (/ MT) 및 다중 스레드 DLL (/ MD)은 디버그 모드에서 동일한 오류를 발생시킵니다. – user2811175