Оконное приложение. .code @1 invoke CreateWindow ; на окне появляется битмап invoke DestroyWindow ; Уничтожаем рисунок jmp @1 Вопрос об глупости кода опустим. Короче, я запускаю программу. Программа работает когда 1 минуту, когда 5 минут, когда несколько секунд. Но результат один - форма внезапно пустеет, исчезают все контролы что есть заголовок формы ("Программа не отвечает"...) Почему такое? Что делать? Пробовал cli \ sti но что-то не получается эту структурку втыкнуть, масм ругается...
TOLSTOPUZ Выполнение потока команд, отрисовывающего битмап в данном случае "перетягивает одеяло" процессорного времени на себя, фактически тормозя поток оконной процедуры, настолько что он не может даже обрабатывать приходящие окну сообщения (отсюда и "программа не отвечает", и исчезновение контролов - их, кроме оконной процедуры, некому перерисовать). Ибо "битмапный" поток грузит ЦП на все 100%. Наверняка то, что ты хочешь сделать, вполне реализуемо и менее зверскими способами =) Тык вот, внимание вопрос: в чём состоит цель выполнения кода из [1]? Мигание картинки? Если да, то ИМХО надо юзать таймеры.
Цель вот в чём: как всегда пытаюсь своими руками сделать уже сделанное. В данном случае это прогресс бар состоящий из рисунка, (довольно приличного размера в кб) который скачет по шкале, с каждым шагом меняя коордмнату ( inc EDX) Вот, собственно. Работает, работает, а потом бац...
TOLSTOPUZ Ну дык, сделай в обработчике WM_PAINT того самого окна-прогрессбара единовременную отрисовку текущей позиции битмапа. А при изменении таковой посылай окну InvalidateRect, чтобы изменения на нём отобразились. Олька = OllyDBG, 32-bit analyzing debugger ©
ШУТНИКИ, БЛИН!!!! Ну Вы даёте... Рядом со мной лежит девушка Ольга, и тут мессага "А что типа Ольга говорит"? Я уж хотел шторы задвинуть!!!
TOLSTOPUZ 11 кагбе Чаке следит за табой!!111 адин адин %) ну так что там насчёт отрисовки непосредственно при приходе запроса на таковую? (а не каждую миллисекунду, насильственно ;P)
Юзай msctls_progress32 и купи себе учебник по ассемблеру+win32 =) и воабще я так понял у тебя выход из цикла не предусмотрен чтоли?
Да нет, предусмотрен. паралельно идёт фоновая обработка некого файла. Так вот, когда обработка заканчивается, то состояние окна восстанавливается. Только этот прогресс-бар у меня глючный получается. Учебничек по асму купить надо конечно. Не поверите, но всё об ассемблере я черпаю только тут и своими собственными руками и головой. С учебником. думаю, было бы проще. Недавно после многочисленых добрых и ласковых пожеланий форумчан "почитать мсдн" взял русский перевод, почитал... Боже мой - как всё оказалось просто и решаемо. А вот с учебником - нет ничего в магазине. есть про ДОС, а нафиг мне это? Не посоветуете название хорошей книги для вин-32?
Ассемблер. Разработка и оптимизация Windows-приложений, ну это так, воабще в сети дофига учебников. и http://wasm.ru/publist.php?list=1
TOLSTOPUZ Вполне возможно, что проблемы из-за накопления большого числа объектов GDI(битмапов)(> 10000 на один процесс нельзя).