![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#41 | |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
![]()
Дело в том, что эта gdi32.dll - одна большая портянка со скачками, чтобы выполнить что-то приходится скакать по всему коду библиотеки. Так от того, что эта штука универсальная, и должна предоставлять пользователю всё разнообразие результатов, от тех параметров, что он вводит. Мне же не требуется проверок на выводимый результат. Нужно передать данные 1 в 1, ...отпадает пара-тройка скачков. Далее, мне не нужно проверять правильно ли я взял контекст, поскольку я его взял правильным образом из той же GetDC, она берется один раз в начале работы с окном, и потом с закрытием контекст освобождается, это прописано в документации, ...следовательно, еще парочка прыжков убирается. Но прыжки не простые, в их частях еще проверки и прыжки на все случаи жизни "если то, да сё", ...а если уже один с флагом SRCCOPY отпал, то и ч по ссылке ниже и следующие прыжки тоже, а их там 23 штуки, ...и дальше я сбился со счета. Так же по любой проверке на 1М писанины, и в конце только выполнение в 3 строки. Убираем лишнее - вот он и прирост производительности.
И как он может работать не корректно, если это часть истинной библиотеки, а не самоделка? Цитата:
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
|
![]() |
![]() |
![]() |
#42 | ||
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
![]()
А, ну вот, у меня такой вариант заработал:
Код:
Цитата:
Цитата:
Вобщем - это уже самоделка. ![]()
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
||
![]() |
![]() |
![]() |
#43 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
![]()
Вот-вот. Номера системных вызовов отличаются даже в разных билдах одной версии ОС, не говоря уже о разных версиях.
0x119f Windows XP SP1/2/3 - NtUserGetKeyNameText Windows Server 2003 SP1/2 - NtUserGetKeyState Windows Vista SP1/2 - NtUserGetDC Windows 7 - NtUserGetControlBrush 0x100D Windows 2000 SP2 ~ Windows Server 2008 SP1 - NtGdiBitBlt Windows 7 - NtGdiBeginPath http://j00ru.vexillium.org/win32k_syscalls/
пыщь
|
![]() |
![]() |
![]() |
#44 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
![]()
Я этого просто не знал. Могу сделать пример и отправить всем на проверку.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Windows I/o без Kernel32.dll и Advapi32.dll | coinkrsk | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 31 | 27.06.2010 08:52 |
ошибка программы internal error in user32.dll??? | grammaton | Помощь студентам | 3 | 23.01.2010 10:07 |
Ошибка при выхове функций Bass.dll из другой DLL | SalasAndriy | Общие вопросы Delphi | 7 | 21.10.2009 23:36 |
Война Авиры и User32.dll | Google[Bot] | Безопасность, Шифрование | 2 | 13.01.2009 18:40 |
Пытаюсь создать Dll для своей проги | Parcenson | Общие вопросы Delphi | 6 | 30.09.2008 20:36 |