Цитата:
Сообщение от Don Karleone
Вообщем дело обстоит так:
я создаю DIB-секцию функцией CreateDIBSection(), где один из параметров, это указатель на массив байт созданного растра. Этот указатель я передаю своей функции, которая проделывает некую операцию с этими самыми байтами.
Проблема была в том, что перед вызовом своей функции я проделал следующее:
Код:
var
Bitmap1: HBITMAP;
DC: HDC;
P1: pointer;
....
DC:=CreateCompatibleDC(0);
Bitmap1:=CreateDIBSection(..., P1, ...);
SelectObject(DC, Bitmap1);
//а здесь я вызвал свою функцию и передал ей указатель P1
Проблемы нет, если я вызываю свою функцию до вызова SelectObject(...);
Почему именно так, не знаю.
|
Осмелюсь предположить, что SelectObject, каким-то образом, перемещает байты, на которые указывает P1 (конечно, если, дело в самой функции)...