powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / вывод битмапа
1 сообщений из 1, страница 1 из 1
вывод битмапа
    #33653622
ASadsad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача: прочитанный из файла битмап вывести на десктоп.
Среда: masm v7.

ВОПРОС: ПОЧЕМУ ВЫДАЕТ ОШИБКУ SelectObject,mDC,mBM? (остальное выполняется нормально)

Исходник:

.386
.model flat, stdcall
option casemap:none

include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
include \masm32\include\gdi32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
includelib \masm32\lib\gdi32.lib

.data
fName db 'pilot.bmp',0

.data?
hdc dd ?
fHan dd ?
fSiz dd ?
memP dd ?
mDC dd ?
mBM dd ?

.code
start:
invoke _lopen,addr fName,OF_READ
mov fHan,eax
invoke GetFileSize,fHan,0
mov fSiz,eax
invoke GlobalAlloc,0,fSiz
mov memP,eax
invoke _lread,fHan,memP,fSiz
invoke CloseHandle,fHan

invoke GetDC,0
mov hdc,eax
invoke CreateCompatibleDC,hdc
mov mDC,eax

push esi
mov esi,[memP]
add esi,[esi+10]
push esi ;Bits
mov esi,[memP]
xor eax,eax
mov ax,word ptr [esi+28] ;BitCount
push eax
mov ax,word ptr [esi+26] ;Planes
push eax
push [esi+22] ;Height
push [esi+18] ;Width
call CreateBitmap
mov mBM,eax
pop esi

invoke SelectObject,mDC,mBM

invoke BitBlt,hdc,0,0,63,71,mDC,0,0,SRCCOPY


invoke DeleteObject,mBM
invoke DeleteDC,mDC
invoke ReleaseDC,0,hdc
invoke GlobalFree,memP
invoke ExitProcess,0
end start

...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / вывод битмапа
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]