КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Динамические библиотеки
Консольное приложение. КП используется, когда графический интерфейс не нужен. По внешнему виду КП похоже на DOS программу. WINDOWS имеет около 50 консольных функций. Автоматически при запуске КП ему выделяется консоль (командная строка). При чем процесс может иметь 1 консоль. При завершении программы консоль автоматически освобождается. Доступен текстовый режим адаптора. GetStdHandle(параметр) dword – получить дескриптор. <параметр> - задает тип устр-ва. STD_INPUT_HANDLE=-10(для ввода в консоль.прил.) STD_OUTPUT_HANDLE=-11(выход в еах). Полученный дискриптор имеет права и чтения, и записи. SetStdHandle – ограничить права доступа. Для вывода информации текстовой используется WriteConsole (парам.1, парам.2, парам.3, парам.4, парам.5).Все параметры и результат типа dword.
Еах= 0-ошибка. 1-успешно. Если произошла ошибка, то по функции GetLastError выводится ошибка.
ДБ исполняемые файлы с расширением.dll.имеют тот же формат, что и.ехе файл для win32. Использование ДБ позволяет разбивать на модули программув период выполнения прогр-ы. Хранятся исполнительные файлы в виде внешних модулей. Для понимания ДБ понадобится понятие «связывание» - сопоставление имен указанных в коде прогр.и имен расположенных во внешн.библ.модулях. Когда мы используем внешн.библ.модули в DOS программах происходит раннее или статическое связывание, при использ..dll происходит позднее или динамическое связывание. Динамическое связывание: 1. неявное – осуществляется автоматически при запуске прогр. Для этого внешний.dll модуль должен с помощью спец.implib преобраз.в библ.порта, и этот библ.модуль д.б. явно задан в тексте прогр.с помощью оператора include. 2. явным – связывание осуществляется при выполнении прогр. помощью вызова спец. WinAPI функций. Выгрузка ДБ из памяти всегда происходит автоматически при завершении прогр. В любой ДБ следует определить точку входа в процедуру. Именно эта метка процедуры ук-ся в псевдокоманде end. Процедура входа м.б.пустой. Эта проц.входа вызывается каждый раз при загрузке или выгрузке библ., получая ч/з стек 3 параметра типа dword: 1) идентификатор.dll модуля. 2) Причина вызова: 0 – библ.выгружается из адресного пространства процесса. 1 – библ.загружается в адрес пространства процесса. 2 – вызывается процесс, создается новый поток. 3 – вызывается процесс, уничтожается некий поток. 3) зарезервирован. Если процедура входа пустая, то она должна содержать 2 команды mov eax, 1 ret 12 Неявное связыване. Похоже на испльзование стандартной библиот.WINDOWS. При неявном связывании необходимо создать библиотеку импорта, с помощью команды implib dllDelCharLib.dll … DelChar.dll (какие файлы вкл.в библ.) При явном связывании используются функции WinAPI, которые вызываются во время выполнения программы.
Дата добавления: 2014-01-06; Просмотров: 495; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |