У меня есть вызов CreateDIBSection (), который возвращает 0. В документации сказано, что это означает, что «один или несколько входных параметров недопустимы», но нет указания на , какой параметр недопустим .
Я посмотрел, что этот ТАК вопрос, в котором вопрос заканчивается словами "после CreateDIBSection я обнаружил, что код ошибки 8, недостаточно ресурсов" - это меня смутило - нет упоминаний ни об одной ошибке коды в документации . Как постер получил эту дополнительную информацию?
РЕДАКТИРОВАТЬ: В соответствии с просьбой, вот мой код - я должен извиниться, он не завершен - он является частью огромной программы, и создание минимальной программы winapi не тривиально.
HDC hdcTemp;
BYTE* bitPointer;
hdcTemp = CreateCompatibleDC(hdc_desktop);
my_printf("GetDeviceCaps(hdcTemp,BITSPIXEL) = %d\n",GetDeviceCaps(hdcTemp,BITSPIXEL)); // this prints "32"
static BITMAPINFO bitmap;
bitmap.bmiHeader.biSize = sizeof(bitmap.bmiHeader);
bitmap.bmiHeader.biWidth = 280;
bitmap.bmiHeader.biHeight = height_to_check;
bitmap.bmiHeader.biPlanes = 1;
bitmap.bmiHeader.biBitCount = 32;
bitmap.bmiHeader.biCompression = BI_RGB;
bitmap.bmiHeader.biSizeImage = 280 * 4 * height_to_check;
bitmap.bmiHeader.biClrUsed = 0;
bitmap.bmiHeader.biClrImportant = 0;
HBITMAP hBitmap2 = CreateDIBSection(hdcTemp, &bitmap, DIB_RGB_COLORS, (void**)(&bitPointer), NULL, NULL);