Сущность DLL как динамических библиотек, позволяющих многократное использование различных программных приложений. Характеристика двух механизмов связывания в среде Windows. Описание функций LoadIcon, LoadLibrary, PostMessage, ExitProcess, их параметры.
Аннотация к работе
Dynamic Link Library - «библиотека динамической компоновки», «динамически подключаемая библиотека») (Расширение приложения) в операционных системах Microsoft Windows и IBM OS/2 - динамическая библиотека, позволяющая многократное использование различными программными приложениями. В мире UNIX аналогичные функции выполняют так называемые общие объекты (англ. shared objects). Формат файлов DLL придерживается тех же соглашений, что и формат исполняемых файлов, сочетая код, таблицы и ресурсы, отличаясь лишь интерпретацией некоторых полей.Во время трансляции связываются имена, указанные в программе как внешние, (EXTERN) с соответствующими именами из библиотек, которые указываются при помощи директивы IMPORTLIB. Напротив, в случае с динамической библиотекой связывание происходит во время выполнения модуля. В первом случае функция, определенная в динамической библиотеке, идентифицируется по ее имени, во втором - по порядковому номеру, который должен быть задан при трансляции. Связывание по порядковому номеру в основном практиковалось в старой операционной системе Windows З.х., связывание по имени - более удобный механизм. Должно сказать, что динамическая библиотека как бы становится продолжением Вашей программы, загружаясь в адресное пространство процесса.Возвращаемое значение: В случае успешного завершения - идентификатор пиктограммы; 0 - в противном случае. функция находится в файле user32.dll (5) попытка связать задачу; (11) неверный файл EXE; (12) прикладная задача из OS/2; (13) прикладная задача из DOS 4.0; (14) неверный тип EXE; (15) незащищенный режим. функция находится в файле kernel32.dll Возвращаемое значение: Не нуль в случае успешного завершения; 0 - если нет. функция находится в файле user32.dll Возвращаемое значение: В случае успешного завершения - идентификатор модуля; 0 - в противном случае. функция находится в файле kernel32.dll Возвращаемое значение: Параметр NRESULT функции ENDDIALOG;-1 - если диалог не может быть создан. функция находится в файле user32.dllMESSAGEBOXA@16 = MESSAGEBOXA includelib c:\tasm\lib\import32.lib ; директивы компоновщику для подключения библиотек includelib c:\tasm32\lib\import32.lib Здесь важно заметить, что, во-первых, необходимо объявить вызываемую из динамической библиотеки процедуру как внешнюю, а, во-вторых, подключить статическую библиотеку DLLP1.LIB. ; директивы компоновщику для подключения библиотек includelib c:\tasm32\lib\import32.lib В свою очередь, процедура возвращает в основной процесс адрес строки, находящейся в блоке данных динамической библиотеки: dll2.asm: ; динамическая библиотека DLL2.ASMДля компиляции использовались компиляторы MASM32 и TASM32.