Как установить библиотеку DLL в систему Windows

Часто можно столкнуться с ситуацией, когда программа или игра требует установки различных дополнительных DLL файлов. Эту проблему можно решить довольно легко, для этого не понадобятся особые знания или навыки.
Варианты установки
Установить библиотеку в систему можно различными способами. Есть специальные программы для выполнения данной операции, а также можно сделать это вручную. Проще говоря, в этой статье будет дан ответ на вопрос — «Куда кидать dll файлы?» после их скачивания. Рассмотрим каждый вариант по отдельности.
Способ 1: DLL Suite
DLL Suite — это программа, которая может сама отыскать нужный вам файл в интернете и установить его в систему.
Для этого потребуется выполнить следующие действия:
- Выбрать в меню программы пункт «Загрузить DLL».
- Ввести в строку поиска имя нужного файла и нажать на кнопку «Поиск».
- В результатах поиска выбрать подходящий вариант.


В описании файла программа покажет вам путь, по которому обычно сохраняется данная библиотека.

Все, в случае успешной загрузки, программа обозначит загруженный файл зеленой отметкой.

Способ 2: DLL-Files.com Client
DLL-Files.com Client во многом похожа на рассмотренную выше программу, но имеет некоторые отличия.
Для установки библиотеки здесь нужно произвести следующие действия:

- Ввести имя искомого файла.
- Нажать на кнопку «Выполните поиск DLL файла».



Все, ваша DLL библиотека скопирована в систему.
У программы имеется дополнительный продвинутый вид – это режим, в котором вы сможете выбрать различные версии DLL для установки. Если игра или программа требует конкретную версию файла, то можно найти её, включив этот вид в DLL-Files.com Client.

В случае, если нужно скопировать файл не в папку по умолчанию, вы нажимаете на кнопку «Выберите версию» и попадаете в окно параметров установки для продвинутого пользователя. Здесь вы производите следующие действия:
- Задаете путь, по которому будет выполнена установка.
- Нажимаете на кнопку «Установить сейчас».

Программа скопирует файл в указанную папку.
Способ 3: Средства системы
Можно установить библиотеку вручную. Для этого нужно будет скачать сам файл DLL и впоследствии просто скопировать или переместить его в папку по адресу:

В завершении надо сказать, что в большинстве случаев DLL файлы устанавливаются по пути:
Но если вы имеете дело с операционными системами Windows 95/98/Me, то путь для установки будет таким:
В случае Windows NT/2000:
64-разрядные системы могут потребовать свой путь для установки:
Мы рады, что смогли помочь Вам в решении проблемы.
Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.
Как написать и отладить dll в C++ Builder
Ну, начнём с того, что Dll — это аббревиатура от слов Dynamic Link Library, что переводится как «динамически подключаемая библиотека». По-сути, это модуль, содержащий какой-то полезный код. Чаще всего этот полезный код содержит какие-то программные функции, но может содержать и что-то другое, например, изображения или списки локализации и тому подобное.
Главное отличие модуля Dll от обычной программы заключается в том, что сам по себе такой модуль (и содержащиеся в нём функции) не может быть исполнен как отдельная программа, зато к этому модулю могут подключаться другие программы и исполнять содержащиеся в нём куски кода. Это, например, позволяет не разрабатывать каждый раз заново функции для работы с какими-то железками, базами данных, другими программами, а описать их один раз в отдельном модуле Dll и далее использовать эту Dll во всех программах, в которых они нужны.
Программы могут связываться с модулями Dll двумя способами, называемыми: статическим связыванием и динамическим связыванием.
При статическом связывании Dll-ка будет загружаться в память вместе с запускаемым приложением и приложение без этой Dll-ки работать не будет. Далее мы не будем рассматривать такой тип связывания, поскольку гораздо интереснее связывание динамическое. В этом случае приложение загружает Dll-ку только в том случае, если ему нужно получить доступ к какой-то хранящейся в Dll-ке функции, после чего Dll-ка снова может быть выгружена. Более того, если в процессе работы приложению ни разу не потребовались хранящиеся в Dll-ке функции, то Dll-ка может вообще не загружаться в память.
Как написать Dll?
Для создания Dll в C++ Builder есть специальный Wizard. Найти его можно по следующему пути: File->New->Other… и далее на вкладке New нужно выбрать пункт DLL Wizard.
Далее, в визарде нужно поставить галочки C++, Use VCL (будем писать на C++ и пользоваться компонентами библиотеки VCL) и нажать OK:
В итоге получаем файл cpp с заготовкой кода (пара подключенных библиотек, функция, обозначающая точку входа) и длиннющим комментарием. Комментарий читаем внимательно и стираем нафиг, а проект сохраняем в отдельной папке.
Далее идём по тому же пути File-&gb;New-&gbOther…, только теперь выбираем на вкладке New не DLL Wizard, а Header File. Cохраняем этот файл в той же папке, что и весь остальной проект (удобнее всего под тем же именем, что и файл cpp, чтобы потом не запутаться) и дописываем в файл cpp инструкцию #include «имя файла.h».
Дописываем в h-файл вот такой код:
Теперь в cpp-файле можно писать какие-то свои функции:
Для того, чтобы функцию можно было экспортировать, её описание в h-файле должно быть вот в таком виде:
Если на выходе функции нужно получить не одну, а несколько переменных, — можно использовать массивы или структуры, только нужно учесть, что вместо AnsiString лучше пользоваться Char-массивами (об этом как раз был комментарий).
Осталось только скомпилировать проект и на выходе мы получим файл с расширением Dll.
Как подключить и использовать Dll в своей программе?
Для того, чтобы использовать функции из Dll в своей программе, — нужно сделать следующее:
Сначала в заголовочном файле программы (*.h) нужно правильно описать типы импортируемых из Dll функций (чтобы описание в программе совпадало с описанием в самой Dll). Проще всего подглядеть эту информацию в самом хидере dll-ки (*.h), хотя конечно, неважно откуда у вас эта информация, главное чтобы она была. Это нужно для того, чтобы программа правильно понимала какие данные (типы, порядок, количество переменных) она будет в Dll передавать и какие принимать. Когда нужная информация у вас есть, описать в программе типы импортируемых функций можно следующим образом:
typedef OD_Type (__import Proto1(ID_Types)); // первый прототип внешней функции Proto1 *Func1; // объявляем импортируемую функцию описанного выше типа typedef OD_Type (__import Proto2(ID_Types)); // второй прототип внешней функции Proto2 *Func2; // а разных функций второго типа будем импортировать Proto2 *Func3; // целых 3 штуки (так тоже можно, если функции имеют Proto2 *Func4; // одинаковый набор типов входных и выходных параметров)
Далее, в программе (*.cpp) нужно загрузить Dll из которой мы хотим описанные функции импортировать:
HINSTANCE DllHinst = LoadLibrary("[путь/]имя_файла.dll");
Если Dll-ка успешно загрузилась, то LoadLibrary вернёт указатель на на неё (идентификатор, по которому к ней можно обращаться), в противном случае функция вернёт NULL.
Теперь, когда у нас есть указатель на загруженную Dll, осталось найти внутри Dll-ки нужную нам функцию. Это можно сделать так:
Если запрошенная нами функция обнаружится в указанной Dll-ке, то GetProcAddress вернёт нам её адрес, в противном случае будет возвращён NULL.
Вот и всё, теперь мы можем пользоваться функцией из загруженной Dll в своей программе, вызывая её точно также, как буд-то она у нас написана в секции *.cpp.
После того, как мы попользовались функциями из Dll-ки и она нам больше не нужна, можно выгрузить её командой FreeLibrary:
Как отладить Dll?
Последнее, что нам понадобится, — это отладка. Как мы уже говорили, напрямую запустить на исполнение Dll и хранящиеся в ней функции невозможно, её сначала должен кто-то толкнуть. Поэтому для отладки нам понадобится написать какое-то приложение, которое будет использовать отлаживаемый код.
Когда такое приложение есть, — копируем его в папку проекта с Dll-кой, выбираем в меню Run пункт Parameters… , в открывшемся окне щёлкаем на кнопку Browse… , напротив строки Host Application, в открывшемся диалоговом окне выбираем наше приложение (после этого в строке Host Application будет прописан путь к выбранному приложению) и жмём OK.
Всё, теперь можно также как и в обычном приложении расставлять в нашей Dll-ке точки останова и запускать отладку кнопкой F9. При этом сначала загрузится выбранное нами выше приложение, а когда оно дойдёт до использования хранящихся в Dll-ке функций — тут-то и сработают наши точки останова, мы попадём в отладчик и сможем отлаживать написанный в Dll-ке код.
В качестве примера можно посмотреть dll-ку для шлюза, вот из этой статьи (она там с исходниками выложена).
Файл формата DLL: чем открыть, описание, особенности
Современные программы состоят из нескольких модулей, которые включают в себя массивы данных, классы.

