
17.06.2008, 16:06
|
|
Постоянный
Регистрация: 30.04.2008
Сообщений: 323
С нами:
9489537
Репутация:
136
|
|
И надо что так что бы открывалась типо на проге кнопка лоад на неё нажимаеш и прога запускает тот длл который с ней в одной папке.. Например:
Надо знать, что экспортировать из библиотеки dll, то есть какие функции экспортные.
Код:
// Есть экспортная функция, которая заранее известна и находится в dll
// вот её прототип
f: function (p: PChar; b: Boolean): Boolean;
// Вот эта функция осуществляет загрузку dll библиотеки
// в адресное пространство вашей программы
procedure Call(DllName, ProcName: PChar);
var
hModule: THandle;
P: Pointer;
begin
f := NIL;
hModule := LoadLibrary(DllName);
if hModule <> 0 then p := GetProcAddress(hModule, ProcName);
if p <> NIL then f('ЗАРАНЕЕ_ИЗВЕСТНАЯ_ЭКСПОРТИРУЕМАЯ_ФУНКЦИЯ', false);
end;
В итоге получается следующее
Код:
var
Form1: TForm1;
// Есть экспортная функция, которая заранее известна и находится в dll
// вот её прототип
f: function (p: PChar; b: Boolean): Boolean;
implementation
{$R *.dfm}
// Вот эта функция осуществляет загрузку dll библиотеки
// в адресное пространство вашей программы
procedure Call(DllName, ProcName: PChar);
var
hModule: THandle;
P: Pointer;
begin
f := NIL;
hModule := LoadLibrary(DllName);
if hModule <> 0 then p := GetProcAddress(hModule, ProcName);
if p <> NIL then f('ЗАРАНЕЕ_ИЗВЕСТНАЯ_ЭКСПОРТИРУЕМАЯ_ФУНКЦИЯ', false);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Call('1.dll', 'ЗАРАНЕЕ_ИЗВЕСТНАЯ_ЭКСПОРТИРУЕМАЯ_ФУНКЦИЯ');
end;
|
|
|