Остаются артефакты после мышиного указателя:
Spoiler:
Spoiler:
Как же тогда тут быть?
1) Да, но зачем?0CodErr wrote:Попробовал выводить изображение в память, которая по адресу FE000000h. Проблемы прибавились.
Пользоваться функциями ядра для вывода, НЕ?0CodErr wrote:Как же тогда тут быть?
Code: Select all
str_table dd 1024 dup (0)
Code: Select all
mov eax,68
mov ebx,11
int 0x40
mov eax,68
mov ebx,12
mov ecx,4096
int 0x40
mov [str_table],eax
...
...
str_table dd 0
вот с этим и столкнулся, хотел сделать динамическое выделение строк, но первым способом объявления, дюжит дольше (таблица указателей под динамически выделенные строки), а вот во второй раз уже держит меньше. Будем разбираться как поступить.SoUrcerer wrote:то, вангую, будет не очень хорошо.
Code: Select all
w = strlen(#text)*6;
mem = malloc(w*9*4);
for (i=0; i<w*9*4; i++) ESBYTE[mem+i]=0xFF; //делаем фон белым
$mov eax, 4
$mov ebx,0 << 16+0
$mov ecx,0x88000000
$mov edi, mem
$mov edx, #text
$int 0x40
PutPaletteImage(mem,w,9,100,100,32,0); //рисуем, 32 - глубина цвета
А что за строка text и зачем её размер умножать на 6?Leency wrote:Пытаюсь разобраться в функции 4, пишущей прямиком в память. Выходит кривая чёрная полоса.Code: Select all
w = strlen(#text)*6; mem = malloc(w*9*4); for (i=0; i<w*9*4; i++) ESBYTE[mem+i]=0xFF; //делаем фон белым $mov eax, 4 $mov ebx,0 << 16+0 $mov ecx,0x88000000 $mov edi, mem $mov edx, #text $int 0x40 PutPaletteImage(mem,w,9,100,100,32,0); //рисуем, 32 - глубина цвета
Users browsing this forum: No registered users and 40 guests