Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

формы в длл [D7, WinXP]


фыва_олдж_фыва ©   (2006-09-29 20:03:00) 

Доброго времени суток, ув. мастера!
Хотелось бы узнать в чем проблемы?

***
library ege_forms;

uses
 SysUtils,
 Classes,
 MainForm in 'MainForm.pas' {MainForm1};

{$R *.res}

exports CreateMainForm1, //здесь ошибка
       DestroyMainForm1;

begin
end.

***
unit MainForm;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs;

type
 TMainForm1 = class(TForm)

   procedure CreateMainForm1(AppHandle: THandle); stdcall;
   procedure DestroyMainForm1; stdcall;

 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 MainForm1: TMainForm1;

implementation

{$R *.dfm}

procedure TMainForm1.CreateMainForm1(AppHandle: THandle);
begin
  Application.Handle := AppHandle;
  MainForm1 := TMainForm1.Create(Application);
  MainForm1.Show;
end;

procedure TMainForm1.DestroyMainForm1;
begin
  MainForm1.Free;
end;

end.

Нужно чтобы форма mainform1 была  в ege_form.dll.


X9   (2006-09-30 12:30:00) [1]

Могу посоветовать использовать BPL, с ними проблем будет меньше.


Percent   (2006-09-30 10:02:00) [2]

Хотелось бы узнать в чем проблемы?

CreateMainForm1, DestroyMainForm1; - не должны быть методами. Это должны быть обычные процедуры или функции, потому что только они и могут импортироваться. У вас же они - методы класса, экземпляра класса - или в каком виде вы их там собирались реализовывать? Непонятно, как вы собираетесь вообще вызывать методы еще не созданного экземпляра класса, не объявив их методами класса? Кроме того, вы передаете Application.Handle (видимо, где-то вычитали?) в модуль, но восстанавливать его в DestroyMainForm1 (я правильно понимаю контекст вашей "программы"?) вы почему-то не собираетесь.

P.S. В вашей программе нет передачи строк между исполняемыми модулями, однако, я подозреваю (я похож на телепата?), что в скором времени вам захочется это сделать. Так что впишите ShareMem в раздел uses, пока не поздно. И читайте внимательнее справку и текст, генерируемый IDE .

P.P.S. Судя по коду вцелом, Вам еще рановато писать программы с использованием плагинов. Судя по коду вцелом, Вам еще рановато писать программы вообще.


zamtmn   (2006-09-29 20:18:00) [3]

>>exports CreateMainForm1, //здесь ошибка
экспортировать методы нельзя


Наверх

Титульная страница Поиск, карта сайта Написать письмо