비트맵 함수 오류 정보: 이유

만료된 KB 콘텐츠 고지 사항

이 문서는 Microsoft에서 더 이상 지원하지 않는 제품에 대해 작성되었습니다. 따라서 이 문서는 “있는 그대로" 제공되며 더 이상 업데이트되지 않습니다.

요약

비트맵 함수 (모든) 여러 가지 이유로 실패할 수 있습니다. 다른 함수는 실패를 나타내는 다른 값을 반환 합니다. 각 함수에 대 한 내용은 설명서를 참조 합니다. 이 문서는 모든 함수의 실패 원인을 결합 하 여 하 고 해상도 또는 설명을 제공 합니다. 영향을 받는 함수 목록이 각 원인은 다음과 같습니다. 원인은 다음과 같습니다.


  1. 매개 변수가 잘못 되었습니다.
  2. 장치에 장치 독립적 비트맵 (DIB)을 처리 하는 방법을 알고 있습니다. 해당 드라이버 내에서 오류는 DIB에서 사용할 그래픽 장치 인터페이스 (GDI)로 전파 됩니다.
  3. GDI는 DIB 작업을 시뮬레이션 하 고 있습니다. 비트맵 64k입니다 또는 큰.
  4. 스캐닝선 (DWORD 맞춤)는 64k 이상입니다.
  5. 전역 메모리가 부족 합니다.
  6. CBM_INIT은 CreateDIBitmap의 dwInit 필드에 설정 됩니다. GDI는 DIB에서 가져온 비트 설정입니다. 시뮬레이션에는 GDI 없습니다 메모리 기반 DC (디바이스 컨텍스트) 만들고 비트맵을 선택 하는 경우 오류가 발생 합니다.
  7. 원본 및 대상 Dc에서 다른 물리적 장치를 나타냅니다.
  8. 소스 사각형의 소스 비트맵을 넘어 확장 됩니다.
  9. 지점은 클리핑 영역 밖에 있습니다.
  10. 비트맵 크기는 SetBitmapDimension가 설정 되지 않은.
  11. 비트맵 리소스 로드 (LoadResource) 또는 (LockResource)를 메모리에 잠겨 (FindResource) 찾을 수 없습니다.
  12. 메모리 DC 장치 DC가 있어야 하는 경우 전달 되었습니다.

자세한 내용

원인 1: 잘못 된 매개 변수입니다.


설명 1: Dc, DIB 머리글, 비트맵 핸들, 시작 스캐닝선 및 기타 매개 변수 올바른 문자 여야 합니다.


영향을 받는 함수: 모든 함수입니다.


원인 2: 장치 DIB 처리 하는 방법을 알고 있습니다. DIB에서 작업할 때 해당 드라이버 내에서 오류가 GDI로 전파 됩니다.


설명 2: 장치 및 전역 메모리) (내의 메모리 부족 및 버그가 장치 드라이버 오류 일반적인 소스는. 자세한 내용은 Microsoft 기술 자료 검색 또는 장치 드라이버 공급 업체에 문의 하십시오.


영향을 받는 함수: CreateDIBitmap, GetDIBits, SetBitmapBits, SetDIBits, SetDIBitsToDevice, StretchDIBits.


원인 3: GDI DIB 작업을 시뮬레이션입니다. 비트맵 64k입니다 또는 큰.


설명 3: GDI의 시뮬레이션 GetDIBits 비트맵은 64k를 지원 하지 않습니다 이상입니다.


영향을 받는 함수: GetDIBits.


원인 4: 각 스캐닝선 (DWORD 맞춤)는 64k 이상입니다.


4 설명: 스캐닝선의 비트맵 픽셀의 한 행은.


영향을 받는 함수: CreateBitmap, CreateCompatibleBitmap CreateDIBitmap, CreateDiscardableBitmap.


원인 5: 전역 메모리가 부족 합니다.


설명 5: GDI 전역 메모리를 비트맵을 만들고 스트레치 비트 Dib를에서 가져오고 Dib의 비트 설정 등의 작업을 수행할 때 중간 개체를 지원 하도록 해야 합니다.


영향을 받는 함수: BitBlt, CreateBitmap, CreateBitmapIndirect,
CreateCompatibleBitmap, CreateDIBitmap CreateDiscardableBitmap, GetDIBits
LoadBitmap, SetDIBits, SetDiBitsToDevice, StretchBlt, StretchDIBits.


원인 6: CBM_INIT CreateDIBitmap의 dwInit 필드에 설정 됩니다. GDI는 DIB에서 가져온 비트 설정입니다. GDI 메모리 만들 수 없는 경우 시뮬레이션이 실패 DC를 기반으로 하 고 비트맵을 선택 합니다.


영향을 받는 함수: CreateDIBitmap.


원인 7: 원본 및 대상 Dc에서 다른 물리적 장치를 나타냅니다.


설명 7: 장치 종속 비트맵 형식 다양 한 장치에서 다른 합니다. 비트 간에 직접 전송할 수 없습니다.


영향을 받는 함수: BitBlt, PatBlt StretchBlt


원인 8: 소스 사각형의 소스 비트맵을 넘어 확장 됩니다.


설명 8:이 함수는 원본 DC에 선택한 비트맵의 사각형 영역 작동 합니다. 이 직사각형 영역 비트맵 경계를 벗어나 확장할 수 없습니다.


영향을 받는 함수: BitBlt, StretchBlt.


원인 9: 점을 클리핑 영역 밖에 있습니다.


해결 방법 9: 같은 창에 대 한 다른 DC를 얻을 수 있습니다. 기본 클리핑 영역 전체 화면에 보이는 클라이언트 영역에 포함 됩니다.


영향을 받는 함수: GetPixel, SetPixel.


원인 10: SetBitmapDimension 비트맵 크기를 설정 되지 않은.


10 설명: GetBitmapDimension SetBitmapDimension를 사용 하 여 설정 값을 검색 합니다.


영향을 받는 함수: GetBitmapDimension.


원인 11: 비트맵 리소스 (FindResource) 찾을 수 없거나 또는 로드 (LoadResource) 또는 (LockResource)를 메모리에 잠겨 있습니다.


해결 11: 비트맵 리소스 있는지 그리고 올바른 hInstance 가리키는 hInst 매개 변수를 확인 하십시오. 일부 응용 프로그램을 닫아 사용할 수 있는 전역 메모리 증가 및 SetHandleCount를 사용 하는 파일 핸들 수를 늘려 보십시오. 리소스 함수의 실패 원인에 대 한 자세한 내용은 Microsoft 기술 자료에서 다음 키워드를 쿼리:

prod(winsdk) 및 실패 및 LoadResource FindResource 및 LockResource
영향을 받는 함수: LoadBitmap, SetBitmapBits.


원인 12: DC 장치 필요 때 메모리 DC 전달 되었습니다.


12 설명: SetDIBitsToDevice 장치 Dc에만 적용 됩니다.


영향을 받는 함수: SetDIBitsToDevice.
속성

문서 ID: 92529 - 마지막 검토: 2017. 2. 7. - 수정: 1

피드백