Библиотека Рефераты Курсовые Дипломы Поиск
Библиотека Рефераты Курсовые Дипломы Поиск
сделать стартовой добавить в избранное
Кефирный гриб на сайте www.za4et.net.ru

Компьютеры, Программирование Компьютеры, Программирование

Работа с библиотеками динамической компоновки (DLL)

Мыло металлическое "Ликвидатор".
Мыло для рук «Ликвидатор» уничтожает стойкие и трудно выводимые запахи за счёт особой реакции металла с вызывающими их элементами.
197 руб
Раздел: Ванная
Гуашь "Классика", 12 цветов.
Гуашевые краски изготавливаются на основе натуральных компонентов и высококачестсвенных пигментов с добавлением консервантов, не
170 руб
Раздел: 7 и более цветов
Ручка "Шприц", желтая.
Необычная ручка в виде шприца. Состоит из пластикового корпуса с нанесением мерной шкалы. Внутри находится жидкость желтого цвета,
31 руб
Раздел: Оригинальные ручки

Андрей Уваров С самого рождения (или чуть позже) операционная система Wi dows использовала библиотеки динамической компоновки DLL (Dy amic Li k Library), в которых содержались реализации наиболее часто применяемых функций. Наследники Wi dows - и Wi dows 95, а также OS/2 - тоже зависят от библиотек DLL в плане обеспечения значительной части их функциональных возможностей. Рассмотрим ряд аспектов создания и использования библиотек DLL: как статически подключать библиотеки DLL; как динамически загружать библиотеки DLL; как создавать библиотеки DLL; как создавать расширения МFC библиотек DLL. Использование DLL Практически невозможно создать приложение Wi dows, в котором не использовались бы библиотеки DLL. В DLL содержатся все функции Wi 32 API и несчетное количество других функций операционных систем Wi 32. Вообще говоря, DLL - это просто наборы функций, собранные в библиотеки. Однако, в отличие от своих статических родственников (файлов . lib), библиотеки DLL не присоединены непосредственно к выполняемым файлам с помощью редактора связей. В выполняемый файл занесена только информация об их местонахождении. В момент выполнения программы загружается вся библиотека целиком. Благодаря этому разные процессы могут пользоваться совместно одними и теми же библиотеками, находящимися в памяти. Такой подход позволяет сократить объем памяти, необходимый для нескольких приложений, использующих много общих библиотек, а также контролировать размеры ЕХЕ-файлов. Однако, если библиотека используется только одним приложением, лучше сделать ее обычной, статической. Конечно, если входящие в ее состав функции будут использоваться только в одной программе, можно просто вставить в нее соответствующий файл с исходным текстом. Чаще всего проект подключается к DLL статически, или неявно, на этапе компоновки. Загрузкой DLL при выполнении программы управляет операционная система. Однако, DLL можно загрузить и явно, или динамически, в ходе работы приложения. Библиотеки импортирования При статическом подключении DLL имя .lib-файла определяется среди прочих параметров редактора связей в командной строке или на вкладке "Li k" диалогового окна "Projec Se i gs" среды Developer S udio. Однако .lib-файл, используемый при неявном подключении DLL, - это не обычная статическая библиотека. Такие .lib-файлы называются библиотеками импортирования (impor libraries). В них содержится не сам код библиотеки, а только ссылки на все функции, экспортируемые из файла DLL, в котором все и хранится. В результате библиотеки импортирования, как правило, имеют меньший размер, чем DLL-файлы. К способам их создания вернемся позднее. А сейчас рассмотрим другие вопросы, касающиеся неявного подключения динамических библиотек. Согласование интерфейсов При использовании собственных библиотек или библиотек независимых разработчиков придется обратить внимание на согласование вызова функции с ее прототипом. Если бы мир был совершенен, то программистам не пришлось бы беспокоиться о согласовании интерфейсов функций при подключении библиотек - все они были бы одинаковыми. Однако мир далек от совершенства, и многие большие программы написаны с помощью различных библиотек без C .

По умолчанию в Visual C интерфейсы функций согласуются по правилам C . Это значит, что параметры заносятся в стек справа налево, вызывающая программа отвечает за их удаление из стека при выходе из функции и расширении ее имени. Расширение имен ( ame ma gli g) позволяет редактору связей различать перегруженные функции, т.е. функции с одинаковыми именами, но разными списками аргументов. Однако в старой библиотеке С функции с расширенными именами отсутствуют. Хотя все остальные правила вызова функции в С идентичны правилам вызова функции в C , в библиотеках С имена функций не расширяются. К ним только добавляется впереди символ подчеркивания ( ). Если необходимо подключить библиотеку на С к приложению на C , все функции из этой библиотеки придется объявить как внешние в формате С:  ex er      "С" i MyOldCFu c io (i myParam); Объявления функций библиотеки обычно помещаются в файле заголовка этой библиотеки, хотя заголовки большинства библиотек С не рассчитаны на применение в проектах на C . В этом случае необходимо создать копию файла заголовка и включить в нее модификатор ex er "C" к объявлению всех используемых функций библиотеки. Модификатор ex er "C" можно применить и к целому блоку, к которому с помощью директивы # i clude подключен файл старого заголовка С. Таким образом, вместо модификации каждой функции в отдельности можно обойтись всего тремя строками:  ex er      "С"  {      #i clude "MyCLib.h"  } В программах для старых версий Wi dows использовались также соглашения о вызове функций языка PASCAL для функций Wi dows API. В новых программах следует использовать модификатор wi api, преобразуемый в s dcall. Хотя это и не стандартный интерфейс функций С или C , но именно он используется для обращений к функциям Wi dows API. Однако обычно все это уже учтено в стандартных заголовках Wi dows. Загрузка неявно подключаемой DLL При запуске приложение пытается найти все файлы DLL, неявно подключенные к приложению, и поместить их в область оперативной памяти, занимаемую данным процессом. Поиск файлов DLL операционной системой осуществляется в следующей последовательности. Каталог, в котором находится ЕХЕ-файл. Текущий каталог процесса. Системный каталог Wi dows. Если библиотека DLL не обнаружена, приложение выводит диалоговое окно с сообщением о ее отсутствии и путях, по которым осуществлялся поиск. Затем процесс отключается. Если нужная библиотека найдена, она помещается в оперативную память процесса, где и остается до его окончания. Теперь приложение может обращаться к функциям, содержащимся в DLL. Динамическая загрузка и выгрузка DLL Вместо того, чтобы Wi dows выполняла динамическое связывание с DLL при первой загрузке приложения в оперативную память, можно связать программу с модулем библиотеки во время выполнения программы (при таком способе в процессе создания приложения не нужно использовать библиотеку импорта). В частности, можно определить, какая из библиотек DLL доступна пользователю, или разрешить пользователю выбрать, какая из библиотек будет загружаться. Таким образом можно использовать разные DLL, в которых реализованы одни и те же функции, выполняющие различные действия.

Например, приложение, предназначенное для независимой передачи данных, сможет в ходе выполнения принять решение, загружать ли DLL для протокола CP/IP или для другого протокола. Загрузка обычной DLL Первое, что необходимо сделать при динамической загрузке DLL, - это поместить модуль библиотеки в память процесса. Данная операция выполняется с помощью функции ::LoadLibrary, имеющей единственный аргумент - имя загружаемого модуля. Соответствующий фрагмент программы должен выглядеть так:  HI S A CE hMyDll;  ::  if((hMyDll=::    LoadLibrary("MyDLL"))== ULL) { / не удалось загрузить DLL / }  else { / приложение имеет право пользоваться функциями DLL через hMyDll / } Стандартным расширением файла библиотеки Wi dows считает .dll, если не указать другое расширение. Если в имени файла указан и путь, то только он будет использоваться для поиска файла. В противном случае Wi dows будет искать файл по той же схеме, что и в случае неявно подключенных DLL, начиная с каталога, из которого загружается exe-файл, и продолжая в соответствии со значением PA H. Когда Wi dows обнаружит файл, его полный путь будет сравнен с путем библиотек DLL, уже загруженных данным процессом. Если обнаружится тождество, вместо загрузки копии приложения возвращается дескриптор уже подключенной библиотеки. Если файл обнаружен и библиотека успешно загрузилась, функция ::LoadLibrary возвращает ее дескриптор, который используется для доступа к функциям библиотеки. Перед тем, как использовать функции библиотеки, необходимо получить их адрес. Для этого сначала следует воспользоваться директивой ypedef для определения типа указателя на функцию и определить переменную этого нового типа, например:      // тип PF MyFu c io будет объявлять указатель на функцию,  // принимающую указатель на символьный буфер и выдающую значение типа i   ypedef i (WI API PF MyFu c io )(char );  ::  PF MyFu c io pf MyFu c io ; Затем следует получить дескриптор библиотеки, при помощи которого и определить адреса функций, например адрес функции с именем MyFu c io :  hMyDll=::LoadLibrary("MyDLL");  ::  i iCode=( pf MyFu c io )("Hello"); Адрес функции определяется при помощи функции ::Ge ProcAddress, ей следует передать имя библиотеки и имя функции. Последнее должно передаваться в том виде, в котором экспортируется из DLL. Можно также сослаться на функцию по порядковому номеру, по которому она экспортируется (при этом для создания библиотеки должен использоваться def-файл, об этом будет рассказано далее):              MAKEI RESOURCE(1)); После завершения работы с библиотекой динамической компоновки, ее можно выгрузить из памяти процесса с помощью функции ::FreeLibrary:  ::FreeLibrary(hMyDll); Загрузка MFC-расширений динамических библиотек При загрузке MFC-расширений для DLL (подробно о которых рассказывается далее) вместо функций LoadLibraryи FreeLibrary используются функции AfxLoadLibrary и AfxFreeLibrary. Последние почти идентичны функциям Wi 32 API. Они лишь гарантируют дополнительно, что структуры MFC, инициализированные расширением DLL, не были запорчены другими потоками. Ресурсы DLL Динамическая загрузка применима и к ресурсам DLL, используемым MFC для загрузки стандартных ресурсов приложения.

endlessly; бесконечно большая величина infinite; бесконечно малая величина infinitesimal бесконечность infinity бесконечный endless, infinite; бесконечное повторение временной задержки на параллельном порту infinite retry on parallel printer time out бесконечныйцикл endless loop, infinite loop бесполезный purposeless; helpless беспорядок disarrangement, disorganization, disorder; приводитьвбеспорядок disarray, disarrange, disorder беспроводная локальная сеть wireless LAN беспроводный wireless, cordless бессистемность nonsystem бессистемный methodless бессодержательный matterless бесцельный purposeless бесчисленный innumerable бета-версия (версия программы для бета-тестирования) beta-version, beta-release бета-тестирование (пробная эксплуатация программного продукта) beta testing библиографическая ссылка bibliographical reference библиографический bibliographical библиотека library; озаглавленная библиотека named library библиотека данных data library библиотека динамического связывания dynamic link library (DLL)

1. Анализ функции фильтрационного сопротивления для неустановившегося притока жидкости (газа) (к несовершенной скважине)

2. Конструктивистский дискурс как философско-методологическая основа изучения когнитивных функций головного мозга

3. Особенности анализа функции полезности с ординалистской позиции

4. Выбор и анализ функций управления

5. Построение и анализ функции спроса на товар

6. Анализ существующих подходов оценки психологической устойчивости личности при работе с конфиденциальной информацией
7. ТЕОРЕТИЧЕСКИЙ АНАЛИЗ РАСПРЕДЕЛЕНИЯ ФУНКЦИЙ УПРАВЛЕНИЯ В ПОДРАЗДЕЛЕНИЯХ ОМОН И ВНУТРЕННИХ ВОЙСКАХ МВД РОССИИ (низшие структурные подразделения: отделение, взвод)
8. Анализ производственных функций

9. Анализ эпизода литературного произведения: композиция, содержательные функции художественной детали

10. Изучение функций в курсе математики VII-VIII классов

11. Диалектика развития понятия функции. Различные подходы к изучению функций в школе и исследования с помощью ЭВМ.

12. Применение контент-анализа в изучении межэтнической напряженности

13. Изучение межличностных отношений с использованием методологии транзактного анализа (на примере отношений в браке)

14. Анализ области определения функции

15. Основы распараллеливания программ, их динамический анализ

16. Анализ динамических свойств системы автоматического управления заданной структурной схемы

Терка для моркови "по-корейски" Regent "Linea Presto".
Терка для нарезки моркови "по-корейски". Материал: нержавеющая сталь, пластик. Размер: 32,7x12,5x2,5 см.
377 руб
Раздел: Тёрки, мультитёрки
Карандаши цветные "Triangle", 12 цветов.
В наборе: 12 цветов. Ударопрочный грифель. Пластиковый корпус треугольной формы. Заточенный наконечник. Диаметр корпуса: 10 мм. Длина: 140
357 руб
Раздел: 7-12 цветов
Корзина "Плетенка" с крышкой, 35х29х22,5 см (белая).
Материал: пластик. Ширина: 29 см. Длина: 35 см. Высота: 22,5 см. Цвет: белый.
370 руб
Раздел: Корзины для стеллажей

17. Методы изучения и анализа существующих систем управления

18. Анализ конкурентоспособности торговых марок чая на основе изучения его ассортимента

19. Маркетинг услуг. Функции рекламы. SWOT-анализ региона

20. Анализ поведения функций при заданных значениях аргумента

21. Использование информационно-коммуникативных технологий при изучении темы "Показательной функции" в средней школе

22. Анализ контрольно-коррекционной функции управления
23. Методика преподавания темы "Тригонометрические функции" в курсе алгебры и начал анализа
24. Теоретический анализ к подходу изучения детей с задержкой психического развития

25. Реализация диагностической функции классного руководителя в работе по изучению личности младшего школьника

26. Динамический синтез и анализ рычажного механизма

27. Анализ динамического поведения механической системы

28. Вычисление термодинамических функций индивидуального вещества H2, расчет константы равновесия реакции 2MgOконд+Сграф - 2Mgконд+СО2. Построение и анализ диаграммы состояния двухкомпонентной системы La—Sb

29. Разработка программных средств анализа графика функции и решение оптимизационных задач

30. Tupolev 154M noise asesment (Анализ шумовых характеристик самолёта Ту-154М)

31. Анализ устойчивости и поддержание орбитальной структуры космической системы связи

32. Изучение гнездований зяблика (Fringilla coelebs) Вологодской области

Пазл "Россия" (Русский), 100 деталей.
Пазлы - это прежде всего обучающие пазлы. С фотографической точностью прорисованы обитатели и растительный мир самых отдаленных уголков
548 руб
Раздел: Пазлы (100-199 элементов)
Каталка-мотоцикл "МХ".
Новая каталка-мотоцикл "МХ" впечатлит вашего малыша. Он сможет почувствовать себя настоящим байкером, ведь эта каталка не просто
2899 руб
Раздел: Каталки
Крем для младенцев "Weleda" для защиты кожи в области пеленания (с календулой), 75 мл.
Крем для младенцев для защиты кожи в области пеленания от WELEDA с экстрактом Календулы лекарственной и Ромашки аптечной эффективно
476 руб
Раздел: Крем детский

33. Клонирование и анализ генов легких цепей иммуноглобулинов стерляди

34. Функции белков в организмах живых существ

35. How "DNA" testing works Анализ "ДНК" как проверяющие работы)

36. Синапсы (строение, структура, функции)

37. Строение и функции клетки

38. Анализ повадок отряда ДЯТЛООБРАЗНЫЕ - Piciformes семейства ДЯТЛОВЫЕ – Picidae
39. Слуховой анализатор. Строение и функции сердца
40. Статистика населения. Методы анализа динамики и численности и структуры населения

41. Анализ рынка углеводородов стран Центральной и Южной Азии

42. История изучения и использования природных вод на Урале

43. Анализ экономики США

44. Статистический анализ демографической ситуации в Российской Федерации

45. Анализ бюджетного дефицита за 1990-1996 годы

46. Анализ регулирования и финансирования бюджетного дефицита с 1985 и по наши дни

47. Сущность, функции и классификация налогов

48. Задачи, система и функции органов юстиции Российской Федерации

Мультиплеер "Антошка".
Супермодный плеер для малышей "Антошка" в оригинальном дизайне! В нем собрано 15 популярных песенок и 5 любимых сказок. Бонус!
344 руб
Раздел: Смартфоны, мультиплееры
Ниблер силиконовый "Зайчик", голубой.
Каждая мама знает, насколько важный этап в жизни младенца представляет собой прикорм. Но как же проблематично скормить хотя бы ложечку
373 руб
Раздел: Ниблеры
Мягкий пол универсальный, зеленый, 33x33 см (9 деталей).
Данный вид напольного покрытия прекрасно совмещается с ковриками-пазлами "Морские животные", "Листья" и
729 руб
Раздел: Прочие

49. Задачи, основные функции и система ОВД

50. Анализ проблем возмещения ущерба, причиненного незаконными действиями государственных органов

51. Памятники права в историческом изучении

52. Социально-экономическое развитие России в начале XX в. Реформы Витте и Столыпина (сравнительный анализ)

53. Либерализм и марксизм: сравнительный анализ

54. Личные (гражданские) (права и свободы в конституциях США и Испании /сравнительный анализ/)
55. Сравнительный анализ Конституции Литовской и Латвийской Республик
56. Анализ мотивации и оплаты труда на предприятии

57. Сравнительный анализ социально-экономических прав, свобод и обязанностей в конституциях Китая и Испании

58. Референдум и его социальная функция

59. Системы органов государственной власти субъектов Российской Федерации и штатов Индии (сравнительный анализ)

60. Местное самоуправление в Украине (историко-правовой анализ)

61. Историко-правовой анализ Закона СССР "о разграничении полномочий между СССР и субъектами федерации"

62. Задачи, система и функции органов юстиции Российской Федерации

63. Уголовное преследование как функция государства

64. Отчет по учебно-ознакомительной практике (c правовыми основами местного самоуправления, формированием представительных и исполнительных органов власти, структурой и функциями органов местного самоуправления)

Лоток вертикальный, 3 отделения, черный.
Ширину секций данного лотка можно регулировать. Секции маркируются сменной линованной табличкой. Количество секций: 3. Ширина: 230 мм. Цвет: черный.
301 руб
Раздел: Подставки, лотки для бумаг, футляры
Пенал школьный "Pixie Crew" с силиконовой панелью для картинок (цветная клетка).
Повседневные вещи кажутся скучными и однотонными, а тебе хочется выглядеть стильно и быть не как все? "Pixie Crew" сделает твою
1096 руб
Раздел: Без наполнения
Подарочный набор, 21x16x4 см, арт. 140304.
Материал: искусственная кожа. Правила ухода: избегать попадания влаги. Состав: кожзаменитель (PU), элементы металла. В наборе: бумажник,
355 руб
Раздел: Письменные наборы

65. Конституционно-правовые аспекты муниципальной реформы в России и Украине: сравнительно-правовой анализ

66. Налог на прибыль. Анализ изменений налогообложения прибыли в связи с введением в действие главы 25 НК РФ "Налог на прибыль организаций"

67. Функции государства: налогообложение и взимание налогов

68. Анализ современных моделей реформирования налоговой системы

69. Структура налоговых органов РФ права, обязанности и функции

70. Цели, задачи и функции прокуратуры Украины
71. Возникновение и развитие, понятие и признаки права. Понятие правосознания, основные функции, виды
72. Право: понятие, признаки, виды, функции, принципы

73. Государство: понятие, признаки, формы правления и функции

74. Функции государства

75. Феодальное государство (экономическая основа, сущность, механизм, функции и формы)

76. Структура и функции государственного аппарата

77. Учет и анализ расчетов с персоналом по оплате труда в организации

78. Лингвистика - влияние первого языка на изучении второго

79. Грамматический анализ субстантивированных прилагательных и причастий

80. Использование интегрированных курсов при изучении иностранного языка

Горшок дорожный и насадка на унитаз "HandyPotty", голубой.
Складной дорожный горшок HandyPotty. Он может заменить сразу три аксессуара: привычный ребенку и его родителям горшок, дорожный горшок для
1160 руб
Раздел: Прочие
Шкатулка музыкальная "Сердце", 16x15x7 см, арт. 24806.
Состав: пластик, элементы металла, стекло. Регулярно удалять пыль сухой, мягкой тканью. Музыкальный механизм с ручным заводом. Товар не
775 руб
Раздел: Шкатулки музыкальные
Багетная рама "Stella" (золотой), 30х40 см.
Багетные рамы предназначены для оформления картин, вышивок и фотографий. Оформленное изделие всегда становится более выразительным и
868 руб
Раздел: Размер 30x40

81. Социокультурный компонент содержания обучения как средство повышения мотивации изучения иностранных языков на среднем этапе общеобразовательной школы

82. Tupolev 154M noise asesment (Анализ шумовых характеристик самолёта Ту-154М)

83. Сопоставительный анализ фразеологических единиц с компонентом “mund”/”рот” в немецком и русском языках

84. Синтактико-семантический анализ составляющих сложносоставных слов в английском языке

85. Лексико-семантический анализ современных англоязычных рекламных слоганов

86. Сравнительный анализ отечественной и зарубежной системы книгораспространения
87. Анализ живописных произведений флорентийской школы конца XV - начала XVI веков
88. Метод действенного анализа в режиссуре театра, кино и телевидения

89. ТВ драматургия "Анализ книги Ю.М. Лотмана "Семиотика кино и проблемы киноэстетики"", "Проблема знаков"

90. Сравнительный анализ культуры Средневековья и Возрождения

91. Культура как социальное явление. Ее основные функции

92. Культура, ее функции, субъекты

93. И.И.Крылов на Кавказских Минеральных Водах. Изучение проблемы

94. Анализ новгородской иконы "Спас нерукотворный"

95. Анализ стихотворения А.С.Пушкина "Элегия"

96. Анализ авторской пунктуации в художественном тексте

Фломастеры "Jungle Innovation" на подставке, 12 цветов.
Чернила легко смываются с рук и одежды. Эти фломастеры идеальны для раскрашивания, поскольку они долговечны, их краски насыщенны, хорошего
343 руб
Раздел: 7-12 цветов
Карандаши акварельные "Mondeluz", 24 цвета.
Акварельные карандаши применяются в живописи, рисовании, работе в смешанных техниках. Совмещают в себе свойства цветного карандаша и
384 руб
Раздел: Акварельные
Настольная игра "Фефекты фикции".
Увлекательная детская игра для развития речи и творческого мышления, разработанная профессиональными логопедами и детьми. В комплекте:
990 руб
Раздел: Русский язык, слова, речь

97. Сопоставительный анализ фразеологизмов с анимализмами в немецком и русском языках

98. Поэзия природы: средства изобразительности и функции

99. Анализ акцента литовца при произнесении русского текста

100. Анализ отрывка стихотворения Некрасова "В дороге"


Поиск Рефератов на сайте za4eti.ru Вы студент, и у Вас нет времени на выполнение письменных работ (рефератов, курсовых и дипломов)? Мы сможем Вам в этом помочь. Возможно, Вам подойдет что-то из ПЕРЕЧНЯ ПРЕДМЕТОВ И ДИСЦИПЛИН, ПО КОТОРЫМ ВЫПОЛНЯЮТСЯ РЕФЕРАТЫ, КУРСОВЫЕ И ДИПЛОМНЫЕ РАБОТЫ. 
Вы можете поискать нужную Вам работу в КОЛЛЕКЦИИ ГОТОВЫХ РЕФЕРАТОВ, КУРСОВЫХ И ДИПЛОМНЫХ РАБОТ, выполненных преподавателями московских ВУЗов за период более чем 10-летней работы. Эти работы Вы можете бесплатно СКАЧАТЬ.