![]() |
![]() ![]() ![]() ![]() |
|
Модуль-заготовка для динамического подключения библиотекDelphi , Файловая система , DLL и PlugIns
Автор: Panov
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Модуль-заготовка для динамического подключения библиотек.
Модуль подключается к проекту.
Для загрузки и выгрузки библиотек используется по одной функции.
Зависимости: windows.pas, sysutils.pas
Автор: panov, panov@hotbox.ru
Copyright: нет
Дата: 30 марта 2004 г.
***************************************************** }
unit proc;
interface
uses windows, sysutils, classes;
const
_MyLibraryName = '..\dll\proc.dll'; //имя библиотеки
var
hLib: THandle;
procedure LoadLib;
procedure UnloadLib;
implementation
procedure LoadLib;
begin
if hLib <> 0 then
Exit;
hLib := LoadLibrary(PChar(_MyLibraryName));
if (hLib = 0) then
begin
raise Exception.Create('Не могу загрузить библиотеку ' + _MyLibraryName);
Exit;
end;
end;
procedure UnloadLib;
begin
FreeLibrary(hLib);
hLib := 0;
end;
initialization
hLib := 0;
end.
Пример использования:
unit proc;
interface
uses windows, sysutils;
const
_MyLibraryName = '..\dll\proc.dll'; //имя библиотеки
var
hLib: THandle;
ExecCmd: procedure(const aCommand: string; const aShow, aWaitExit: Boolean);
procedure LoadLib;
procedure UnloadLib;
implementation
procedure LoadLib;
begin
if hLib <> 0 then
Exit;
hLib := LoadLibrary(PChar(_MyLibraryName));
if (hLib = 0) then
begin
raise Exception.Create('Не могу загрузить библиотеку ' + _MyLibraryName);
Exit;
end;
@ExecCmd := GetProcAddress(hLib, 'ExecCmd');
end;
procedure UnloadLib;
begin
FreeLibrary(hLib);
hLib := 0;
end;
initialization
hLib := 0;
end.
{
В любом модуле пишем:
uses proc;
...
LoadLib; //Загрузка библиотеки.
ExecCmd('c:\command.com',True,True);
UnloadLib; //Выгрузка библиотеки.
}
Вот перевод текста на русский язык: Эта часть модуля Delphi обеспечивает динамическое загрузку библиотеки, позволяя загружать и выгружать библиотеки в runtime. Модуль предназначен для использования с единицами Windows и SysUtils. Модуль определяет два процедура: Модуль также определяет константу В примере использования процедура Функция Вот некоторые предложения по улучшению:
Вот обновленная версия кода с улучшенной обработкой ошибок и организацией: В этом коде определена класс Модуль-заготовка для динамического подключения библиотек в Delphi, позволяющий загружать и выгружать библиотеку с помощью функций LoadLibrary и FreeLibrary. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш :: Главная :: DLL и PlugIns ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||