![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
dll
oleg_ © (2004-10-21 23:43:00)Здраствуйте.
Помогите,если не трудно.
модуль dll
dll-ка (содержит ImageList, и должна ресурсы
переводить в форму)
procedure lib;
begin
lib.Images:=form1.ImageList1;
main_f.s1.ImageIndex:=24;
end;
модуль формы
на кнопке вызываем dll:
var
h: THandle;
lib:procedure;
begin
h := LoadLibrary('lib_.DLL');
на кнопке окна, вызываем dll:
if h = 0 then
raise Exception.Create('Unable to Load DLL...')
else
begin
try @lib := GetProcAddress(h, 'lib');
if @lib <> nil then
lib;
except
on E: Exception do
ShowMessage('Exception error: ' + E.Message);
end;
end;
FreeLibrary(h);
end;
Помогите пожалуйста, где ошибка?
Спасибо
GuAV (2004-10-22 14:37:00) [1]Так в приложении свой main_u а в dll свой - две разные копии !
oleg_ (2004-10-22 08:16:00) [2]А dll имеет uses на main_u, и в ней, кроме
кода и формы - нет ничего
library lib_;
uses
SysUtils,
Classes,
forms, messages, dialogs,
lib in 'lib.pas' {Form1},main_u;
{$R *.res}
procedure lib;
begin
main_f.ToolBar1.Images:=form1.ImageList1;
main_f.s1.ImageIndex:=24;
end;
end.
GuAV (2004-10-22 03:20:00) [3]Ошибка в том, что глобальные переменные ехе не доступны в dll и наоборот.
Хотя моё предположение об ошибке на уровне телепатии. Вам следовало бы привести код более полностью. Например что есть lib в процедуре lib, что есть form1 main_f ?
И потом в чём проявляется ошибка ?