나는 COM 구성 요소가 있습니다. 이 COM 구성 요소는 화면에 이미지를 표시합니다. 이미지 비트는 다음과 같이 버퍼를 통해 복사되어 image
이 CV는 :: 매트StretchBlt 실패
IplImage iplimage = image;
IplImage *img2 = cvCreateImage(cvGetSize(&iplimage),
iplimage.depth,
iplimage.nChannels);
cvCopy(&iplimage, img2);
memcpy(m_BackSurface.vpBits, img2->imageData, img2->width*img2->height*3);
. 특정 조건에서 이것은 자른 cv :: Mat, ie입니다. raw_image(x0, y0, w, h)
의 반송은 raw_image
가 또 다른 cv :: Mat입니다.
나중에 응용 프로그램에서 StretchBlt
을 호출하여 이미지를 표시합니다. (.NET 응용 프로그램 내에서이 순수 관리되지 않는 환경에서 발생하지 않는 경우와 만)
나는 .NET 응용 프로그램 내에서이 COM 구성 요소를 실행 해요 경우 StretchBlt
에 대한 호출 할 때 (다시, 경우에만 실패) image
가 잘립니다. 이미지가 잘리지 않는 코드 경로에서는 오류가 발생하지 않습니다. 드로잉 코드는 두 코드 경로에서 동일합니다. GetLastError()
은 오류 8을 반환합니다.
누군가이 문제에 관해 밝힐 수 있습니까?
Dario, 감사합니다. 실제로 서명 된 값을 빼고 넘은 값이 int보다 큰 경우 stretchBlt에 가비지 데이터를 공급합니다. 당신은 누수에 대해 말했고 나는 코드를 자세히 살펴보고 그것을 발견했습니다. 고맙습니다! –