Форум программистов, компьютерный форум CyberForum.ru

CreateDIBSection - C++

Восстановить пароль Регистрация
 
nelly
0 / 0 / 0
Регистрация: 17.10.2009
Сообщений: 3
09.05.2011, 14:53     CreateDIBSection #1
Помогите, пожалуйста. Если biBitCount 32, то работает нормально. А при 8 (или любом другом) при заполнении Bits ошибка "... 0xC0000005: Access violation writing location 0x00d43000." Как это дело исправить, чтоб для 8 работало?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    void* Bits;
    PBITMAPINFO bpih = (BITMAPINFO*) LocalAlloc(LPTR, sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * 256);// = {sizeof(BITMAPINFOHEADER),w,-h,1,32,BI_RGB,0,0,0,0,0};
    bpih->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
    bpih->bmiHeader.biWidth = w;
    bpih->bmiHeader.biHeight = -h;
    bpih->bmiHeader.biPlanes = 1;
    bpih->bmiHeader.biBitCount = 8;
    bpih->bmiHeader.biCompression = BI_RGB;
    bpih->bmiHeader.biSizeImage = 0;
    bpih->bmiHeader.biXPelsPerMeter = 0;
    bpih->bmiHeader.biYPelsPerMeter = 0;
    bpih->bmiHeader.biClrUsed = 0;
    bpih->bmiHeader.biClrImportant = 0;
    HBITMAP bm1 = CreateDIBSection(hdc, bpih, DIB_RGB_COLORS, &Bits, 0, 0);
    for(int y = 0;y < h;y++)
            {
                for(int x = 0; x < w; x++)
                {
                    ((unsigned*)Bits)[y*w+x] = RGB(0,0,255);//(dst[y][x].b,dst[y][x].g,dst[y][x].r);
                }
            }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.05.2011, 14:53     CreateDIBSection
Посмотрите здесь:

CreateDIBSection без hdc C++ WinAPI

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 00:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru