Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > как писать dll???


Автор: nod32 21.8.2008, 00:46
Подскажите где можно почитать о написании внешних компонент .dll. С помощью которой можна было бы работать в других программах (н-д таких как 1с). И как можна посмотреть код dll (функций которые там написаны), если это вообще можна.

Автор: SyncMaster 21.8.2008, 03:34
Может пригодится, правда это статья о написания Dll для GM ну думаю принцып один 

В Delphi для создания DLL библиотеки Вы выбираете пункт New из меню File и выбираете DLL. Далее приводится пример DLL, который Вы можете использовать в Game Maker написанный в Delphi. (Обратите внимание, что это - Delphi код - не GML код!) 


Код

library MyDLL;

uses SysUtils, Classes;

function MyMin(x,y:double):double;  cdecl;
begin
  if x<y then Result := x else Result := y;
end;

var res : array[0..1024] of char;

function DoubleString(str:PChar):PChar; cdecl;
begin
  StrCopy(res,str);
  StrCat(res,str);
  Result := res;
end;

exports MyMin, DoubleString;

begin
end.


Эта DLL определяет две функции: MyMin, которая берёт два реальных параметра и возвращает минимальный из этих двух, и DoubleString, которая удваивает строку. Обратите внимание, что нужно быть внимательным с использованием памяти. Именно поэтому объявлена результирующей глобальная строковая. Также обратите внимание на использование cdecl - соглашений о вызовах. Это важно. Как только Вы создали DLL в Delphi, у Вас получится файл MyDLL.DLL. Этот файл должен быть помещён в каталог с Вашей игрой. (Или иное место, где Windows может найти его). 


Автор: Snowy 21.8.2008, 13:16
Нажимаешь кнопочку создать (такой листик с плюсиком) и выбираешь там не приложение, а dll.
Если ты имеешь ввиду ActiveX Control, то выбирай ActiveX.
Вобщем выбор там большой. Ты главное её нажми...

Автор: remax 24.8.2008, 00:03
Создание DLL вообще - это один вопрос,
а создание DLL для 1С - это совсем другой. В принципе, для облегчения этого процесса на delphi когда-то была библиотека, по-моему ADDInwiz называлась. Или как-то похоже. Но это коммерческий продукт.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)