집주인이 코드를 쓸 때 MSDN 을 확인해 본 적이 있나요?
MSDN 은 이 함수의 각 매개변수의 사용과 작용을 쉽게 이해할 수 있다. 집주인은 집주인이 준 코드가 정확하지 않다는 것을 확인할 수 있다.
간단히 말해 ImageLockModeUserInputBuf 가 제공되는 경우 직접 lockedBitmapData 를 제공해야 하며 매개 변수를 함수에 전달하기 전에 구조를 초기화해야 합니다. 멤버 중 하나인 Scan0 은 함수가 포인터가 가리키는 버퍼에 픽셀 정보를 저장하는 데 사용하는 포인터 변수입니다. 건물 주인은 구조만 할당하고 픽셀 정보를 저장하는 버퍼는 할당하지 않았다. 그래서 문제가 생길 수 있다. 먼저 버퍼를 할당한 다음 lockedBitmapData 의 Scan0 에 버퍼 주소를 채워야 합니다. 이것이 주요 문제입니다. 자세한 내용은 MSDN 을 참조하십시오.
부언
LockBits 함수 선언의 마지막 인수는 OUT 뿐만 아니라 IN OUT 입니다.
의사 형식은 [선택적 in] out 이어야 합니다.
--
Scan0 은 또 다른 할당된 저장 공간이거나 함수에 의해 할당되거나 함수 호출자에 의해 할당됩니다.
Scan0 을 수정하는 경우 실제로 픽셀을 이미지로 변경하기 전에 UnLockBits 를 호출해야 합니다.