Форум: "Основная";
Текущий архив: 2002.10.07;
Скачать: [xml.tar.bz2];
ВнизDLL Найти похожие ветки
← →
начинающий програмер (2002-09-25 20:16) [0]Здравствуйте, Мастера!
Вот какая у меня проблема:
как мне сделать так, чтобы если библиотека есть, то из неё загружались бы фунции итд и тп, а если ей нет, то не выдавалось бы сообщение о том,что не найдена библотека. Да, и ещё вопрос в догонку:я сделал библиотеку с формой, всё работает. Но как мне присоединить её форме программы(т.е. если библиотека есть, то добавлялся бы пунт в ComboBox и при щелчке отрывалась форма, загруженая из библиотеки).Заранее благодарен. Если не хотите/не можете/лень ответить, то киньте хотя бы ссылку на инфу.
В FAQ на этом сайте смотрел, но немного не то, а кое-что не понятно.. Спасибо!
← →
Новенький в Делфи (2002-09-25 20:30) [1]а если ей нет, то не выдавалось бы сообщение о том,что не найдена библотека
испольщуй защищённый блок:
...
try
...
операторы которые могут вызвать ошибку
...
except
...
операторы, которые будут выполняться при ошибке
...
end;
...
← →
AlexT1000 (2002-09-25 20:36) [2]FAddress:integer;
DllName : string;
1)
DllName := "c:\MyDll.Dll";
if FileExists(DllName) then begin
FAddress := LoadLibrary(PChar(DllName));
end else HET БИБЛИОТЕКИ
2) FAddress := LoadLibrary(PChar(DllName));
if FAddress <> 0 then begin
end else HET БИБЛИОТЕКИ
//
на счет вызова форм
внешний модуль
TSetHandle = function (Value:integer):integer;stdcall;
SetHandle :TSetHandle;
SetHandle:=GetProcAddress(P.Address, "SetHandle");
if not Assigned(SetHandle) then begin Result:= cError;Exit;end;
SetHandle(integer(Application.Handle));
dll
{------------------------------------------------------------------------}
function SetHandle(Value:integer):integer;stdcall;
begin
aHandle := Value;
aOldHandle := Application.Handle;
Application.Handle := Value;
end;
{------------------------------------------------------------------------}
function ActivateMusicPlayer : integer ;stdcall;
begin
if FormMusicPlayer = nil then
Application.CreateForm(TFormMusicPlayer, FormMusicPlayer);
FormMusicPlayer.ShowModal;
end;
///// внешний модуль
type Tfunction = function :integer;stdcall;
Var F:TFunction;
F:=GetProcAddress(Address, "ActivateMusicPlayer");
if Assigned(F) then F;
← →
начинающий програмер (2002-09-25 20:37) [3]Но ведь их нельзя вставить там, где объявляется библиотека(extenal "Mydll.dll"). Слышал, что надо API использовать....
← →
Akim2 (2002-09-25 21:26) [4]AlexT1000 (25.09.02 20:36)
описал динамический вызов. Принем нет надобности описывать в вверху с использывнием external
← →
начинающий програмер (2002-09-25 21:33) [5]
> описал динамический вызов
А это как?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.10.07;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c