Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.13;
Скачать: CL | DM;

Вниз

Работа с памятью   Найти похожие ветки 

 
vvvaaa   (2005-09-08 19:51) [0]

Подскажите пожалуста что в не так, я не правильно обращаюсь с кучей или с указателем?

hMem:HWND;
p:pointer;
...
hMem:=GetProcessHeap;
p:=HeapAlloc(hMem,0,8256);
hFile:=CreateFile("c:\test.bin",GENERIC_READ,FILE_SHARE_READ,nil,OPEN_EXISTING,FILE_FLAG_SEQUENTIAL_SCAN,0);
ReadFile(hFile,p^,8256,t,nil);
hbmp:=CreateCompatibleBitmap(hDC1,w,h);
SetBitmapBits(hbmp,8256,p);
BitBlt(hdc1,10,10,w+10,h+10,hbmp,0,0,0);


 
alpet ©   (2005-09-09 10:55) [1]

vvvaaa   (08.09.05 19:51)

Отладчиком надо воспользоваться.


 
n0name   (2005-09-09 11:02) [2]

А что не так?


 
vvvaaa   (2005-09-09 12:16) [3]

> [2]

BltBtn рисует черный квадрат, и я не понимаю данные в память не загружаются
ReadFile(hFile,p^,8256,t,nil);
или не читаются
SetBitmapBits(hbmp,8256,p);


 
Digitman ©   (2005-09-09 12:19) [4]

какого ляда ты не анализируешь рез-ты , возвращаемые WinAPI-ф-циями ? религия не позволяет что ли ?


 
vvvaaa   (2005-09-09 13:20) [5]

Удалено модератором


 
alpet ©   (2005-09-09 13:25) [6]

vvvaaa   (09.09.05 13:20) [5]
Не понятно, зачем вызывать BitBlt без указания кода растровой операции. Подозреваю что последний параметр должен быть SRCCOPY.


 
Digitman ©   (2005-09-09 13:31) [7]


> vvvaaa   (09.09.05 13:20) [5]


> вижу уже наверно двадцатую твою реплику и все они одинаковые


постоянство во мнениях - не худшее, думаю, человеческое качество)


> тебе видимо IQ не позволяет высказываться более конструктивно


ну а тебе, видимо, он самый не позволяет сообразить, что коль скоро ты используешь ф-цию, а не процедуру, нужно получить (а не игнорировать !) результат, ею возвращаемый


> стественно я проверяю в отладчике и слежу за всеми возвращаемыми
> результатами


малацца.
не забудь всем пользователям своего софта поставлять в дистрибутиве свою версию Делфи, чтобы пользователи могли сделать то же самое при возникновении проблем, которые обязательно возникнут при таком твоем подходе (мол, раз у меня под отладчиком все в порядке, то уж у пользователей и подавно будет все в порядке с вызовом этой ф-ции)


 
vvvaaa   (2005-09-10 12:33) [8]

>коль скоро ты используешь ф-цию, а не процедуру, нужно получить
>(а не игнорировать !) результат, ею возвращаемый

Интересно зачем, если он мне не нужен.
Из асм (условно):
call AnyFunctin
mov result,eax
Все функции возращают результат в eax,edx, eax:edx, и очень реко ecx,ebx. Это регистры общего назначения, их обработка производится только если это надо в программе.

>SRCCOPY

Да это я пропустил, но теперь картинка вообще не рисуется. Подскажите что ещё не так


 
alpet ©   (2005-09-10 14:15) [9]

vvvaaa   (10.09.05 12:33) [8]
Ну и наконец главная ошибка - функция BitBlt принимает в параметрах  контексты устройства (Device Context) - исходный и назначения. У тебя же вместо исходного контекста используется почему-то описатель растра (HBITMAP вместо HDC). Вобщем потрудись создать так-же совместимый контекст (CreateCompatibleDC), и "прицепить" к нему собсвенно растр (SelectObject). А вообще для разрешения таких вопросов существует справка, которую можно было и почитать.


 
vvvaaa   (2005-09-11 10:18) [10]

> alpet ©   (10.09.05 14:15) [9]

Спасибо, но я уже это понял, за три дня нашел исходник функции загрузки битмапа из файла.

>существует справка, которую можно было и почитать.

В справке написано (последний параметр SetBitmapBits):
lpBits - Points to an array of bytes that contain color data for the specified bitmap.

Ну я и указывал на массив данных цвета, а оказалось на до указывать на полную структуру битмапа (HEADER, INFO ...). Вот и верь теперь справкам



Страницы: 1 вся ветка

Текущий архив: 2005.11.13;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.031 c
4-1126192740
incm
2005-09-08 19:19
2005.11.13
Проблема с таймером


14-1130070333
@BraIN
2005-10-23 16:25
2005.11.13
Программа для измерения температуры процессора


10-1107512444
sapsi
2005-02-04 13:20
2005.11.13
Поиск-замена в Word средствами делфи


14-1130042170
SergP.
2005-10-23 08:36
2005.11.13
MSWORD


1-1129990116
Tori
2005-10-22 18:08
2005.11.13
проблемы перехода от exe к dll