Некорректная Работа В DLL

Общие вопросы: версии и диалекты, синтаксис языка, cтруктуры и типы данных (массивы, строки, списки...), обработка данных и т.д.
Ответить
Shouldercannon
Сообщения: 74
Зарегистрирован: 08 июн 2008, 14:49

Некорректная Работа В DLL

Сообщение Shouldercannon » 02 янв 2012, 11:27

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

library dll;

uses
  SysUtils,
  Windows,
  Dialogs,
  Controls,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

procedure ShowInfo(Win: Integer); stdcall;
begin
  Form1[Win] := TForm1.Create(nil);
  Form1[Win].Show;
end;

function FormClosed(Win: Integer): Integer;
begin
  if not Form1[Win].Visible then
  begin
    Form1[Win].Release;
    Result := 1;
  end
  else Result := 0;
end;

exports
  ShowInfo, FormClosed;

begin
end.
1. В DoTerminate выполняется только одно событие
2. Прогресс бар при последующих закачках не двигается и вообще неправильно показывает прогресс
3. Нулевая реакция на синхронизацию (написанные там события не выполняются)

Тоже самое без DLL работает Великолепно. В чём проблема или это неизбежный косяк DLL?
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Ответить