Показать сообщение отдельно
  #4  
Старый 09.04.2009, 11:42
Аватар для AleD
AleD AleD вне форума
Активный
 
Регистрация: 21.02.2009
Адрес: г.Краснокаменск
Сообщения: 383
Репутация: 91
По умолчанию

Цитата:
Сообщение от vl1639
Функции DLL , созданные в какой среде более универсальны, т.е. могут использоваться во всех языках, включая Маткад и пр. Или в Дельфи достаточно указать директиву стандартного вызова и остальное не брать в голову.
это неправильное суждение, функции везде одинаковые, различие лишь в способе очистке стеков, ведь что такое DLL? - это тот же машинный код как и ЕХЕ. Вы вообще пробовали или пока что только теорию шпрэхайте?
Вот так в DLL записывается внешние функции:
Код:
...
function Subtract(a,b: Integer): Integer; stdcall;
begin
  Result := a - b;
end;
...
exports Subtract;
...

А так читаются из DLL:
Код:
...
function Subtract(a,b: Integer): Integer; external 'mylib.dll';
...
или так:
Код:
...
const
  mylib = 'mylib.dll';
...
var
  extfunc: function(a,b: Integer): Integer; external mylib;
...
procedure TForm1.FormCreate(Sender: TObject);
var
  lib: Cardinal;
begin
  lib := LoadLibrary(mylib);
  try
    extfunc := GetProcAddress(lib,pchar('Subtract'));
  finally
    FreeLibrary(lib);
  end;
end;
...
__________________
TAleD = class(TUser)
public
function HelpMe(ASubject, ARequest: String): String;
function GiveMeExample(ASubject: String): TStringList;
procedure WriteReview(APost: Integer; ADescription: TStringList);
end;
Ответить с цитированием