Модуль-заготовка для динамического подключения библиотек

Советы » DLL » Модуль-заготовка для динамического подключения библиотек

{ **** 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 = '..dllproc.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 = '..dllproc.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; //Выгрузка библиотеки. }

Другое по теме:

Категории

Статьи

Советы

Copyright © 2022 - All Rights Reserved - www.delphirus.com