В дополнение к ответу Павла, «совместимость с экраном» также всегда меня раздражала, но, поскольку CreateCompatibleDC(NULL)
универсально используется для этой цели, я предполагаю, что это правильно.
Я думаю, что«совместимая» вещь связана только с DDB (контроллер DC настроен на запись с правильным типом DDB для текущего экрана), но не влияет на чтение / запись на DIB.
Итак, чтобы быть в безопасности,всегда используйте DIB, а не DDB, если вам нужно работать с растровыми изображениями, которые не просто должны временно отображаться на экране, в настоящее время разница в производительности незначительна.См. здесь для получения дополнительной информации о DIB и DDB.