Отчет в DLL

отредактировано 06:32 Раздел: FastReport 3.0
Добрый день!!!

Решил разместить отчет в DLL, сделал по аналогии как в DEMO только с DataModule:
Procedure GetReport(A: TApplication; NPacient:integer);
var
  dmReport: TDataModule1;
begin
  Application.Handle := A.Handle;
  dmReport := TDataModule1.Create(A);
  try
    if not dmReport.frxReport1.LoadFromFile('DirOnProcA41.fr3') //    reportName
    then ShowMessage('Файл отчета ''+reportName+'' не загруженна')
    else
      begin
        dmReport.frxReport1.ShowReport;
      end;
  finally
    dmReport.Free;
  end;
end;
Вызов процедуры из DLL:
var
  LibHandle: THandle;
  GetReport: TGetReport;
begin
  LibHandle := LoadLibrary('DllReport.dll');
  try
    if LibHandle = HINSTANCE_ERROR then
      raise EDLLLoadError.Create('Unable to Load DLL');
    @GetReport := GetProcAddress(LibHandle, 'GetReport');
    if not (@GetReport = nil) then
      GetReport(Application,Query2.FieldByName('NPacient').AsInteger);
  finally
    FreeLibrary(LibHandle);
  end;
end;

Отчет вызывается, строится, закрывается, но когда я дохожу до
FreeLibrary(LibHandle);
Выскакиевает виолейшин с нулями.
В чет проблема нипонятно.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.