Dll?

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Dll?

Re: Dll?

Игорь Акопян » 23 май 2007, 13:26

в дополнение....
&quot писал(а):открыть dpr-файл, удалить оттуда все и записать примерно т
если это сделать через File/New... То в теле проекта можно обнаружить весьма полезный начинающему коментарий ;)

Re: Dll?

Хыиуду » 23 май 2007, 10:28

Если создать длл - открыть новый проект Дельфи, потом открыть dpr-файл, удалить оттуда все и записать примерно так:
library moya_biblioteka;

interface
procedure helloworld;

exports helloworld name 'helloworld' index 1

implementation
procedure helloworld;
begin showmessage('Hello, World!'); end;

end.

После компиляции образуется файл moya_biblioteka.dll

Потом в своей программе пишем:

procedure helloworld; external; 'moya_biblioteka.dll';

и можно пользоваться процедурой.
Если где-то напутал в синтаксисе - не взыщите

Dll !

BBB » 23 май 2007, 09:45

Oleg_Rus писал(а):Подскажите, как .... подключаются Dll-ки в Dlphi?
Подключаются с помощью создания модуля(unit)-"переходника". Разумеется, надо знать именя функций, экспортирунемых DLL-ю, набор их параметров и их calling convention.

Примером такого модуля-переходника может служить дельфийный Windows.pas. Хотя там много всего и, быть может, нелегко будет понять, что к чему.
Если коротко, то вот такой более простой пример.

Скажем, некоторая MyCPPdll.DLL экспортирует функцию DoSomething,
реализованную как:

Код: Выделить всё

  long WINAPI DoSomething (
                  ULONG   uiMode,
                  void*     pData,
                  char    *pacMsg
     );

Тогда модуль-переходник будет выглядеть так:

Код: Выделить всё

unit MyDLL_U;

 //****************************************************
                     interface
 //****************************************************

 function DoSomething (
                  uiMode : Longword;
                  pDIB : pointer;
                  pacMsg : PChar) : longint; stdcall;

 //****************************************************
                   implementation
 //****************************************************

 function DoSomething (
                  uiMode : Longword;
             var  pDIB : pointer;
                  pacMsg : PChar) : longint;
     stdcall; external 'MyCPPdll.DLL' name 'DoSomething';

end.

Dll?

Oleg_Rus » 23 май 2007, 05:54

Подскажите, как создаются и подключаются Dll-ки в Dlphi?

Вернуться к началу