Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Теоретические вопросы _ Подключение внешних Dll. Help

Автор: Alesha_GA 16.05.2003 7:31

Возможно ли в BP 7 использование Dll. Если можно, то как.

Автор: Alex 16.05.2003 10:21

library name;
uses ....;
{описание процедур; типы даных, константы и т.д. писать для послед исп. в проге нельзя}
procedure name1;
begin
end;
...
procedure namen;
begin
end;
exports
name1 index1;
name3 index3; {пишешь названия процедур, которые будешь исп в прогах}
.....
namen index n;

begin
{раздел инициализации отсутствует}
end.

(при работе protect режим Dos и режим Windows}
Использовать можно только в копилерах Bp.EXE, BPC.exe, BPW.EXE.
Borland Pascal with objects, позваляет писать собств Dll

Автор: AlaRic 16.05.2003 14:49

Имя библиотеки должно совпадать с сохраненным файлом!

Автор: Alex 16.05.2003 14:55

Использовать процедуру в программе надо так:
procedure name(...);external 'Mylib';

Автор: BlackShadow 16.05.2003 21:44

Можно воспользоваться и другим способом :

Var
 hLib:Integer;
 Proc:Function(Param1,Param2:Integer;Param3:Pointer):Boolean; {Например}
Begin
 hLib:=LoadLibrary('My.Dll');
 If hLib<>0 Then
 Begin
   @Proc:=GetProcAddress(hLib,'MyFun');
   If @Proc<>Nil Then
     Proc(1,2,Nil);  {Тоже например}
 End
End.
Этим методом я воспользовался, когда вызывал RegisterServiceProcess из Kernel32. Проблема в том, что в NT такой функции нет, а я не хотел, чтобы это было летально для всей программы.