Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.10;
Скачать: CL | DM;

Вниз

Создание компонентов в DLL   Найти похожие ветки 

 
jack128 ©   (2003-03-30 14:32) [0]

Добрый день.
Я вот начал разбираться с DLL"ками и вот какая возникла проблема.
Для примера нужно создать в библиотеке мемо и вернуть его в основyю программу

исходник библиотеки :

library Project1;

uses
ShareMem,
SysUtils,
Classes,
Forms,
StdCtrls;

{$R *.RES}

function CreateMemo(Owner : TForm) : TMemo; stdcall;
begin
Result := TMemo.Create(Owner);
end;

exports
CreateMemo;

begin

end.

Исходник основной пррограммы :

const memo : TMemo = nil;

function CreateMemo(Form : TForm) : TMemo; stdcall; external "project1.dll" name "CreateMemo";

procedure TForm1.Button1Click(Sender: TObject);
begin
memo := CreateMemo(Self);
memo.Parent := Self; // Здесь ошибка "Can not assign TFont to TFont"
end;

А при закрытии программы вываливается AV..
Кто виноват и что делать ??


 
Ihor Osov'yak ©   (2003-03-30 14:59) [1]

Проблема в том, что делфийские длл не умеют экспортировать классы. Основная причина в том, что таблицы виртуальных методов в длл и приложении - разные.

Варианты решения - или переходить на использование пакетов или на использование COM-обьектов. Еще вариант - форму полностью в длл, но обращение к ней не через ссылку на екземпляр формы, а с помощью обычных "неклассовых" процедур-оберток. Но здесть тоже есть несколько тонких моментов (форма в длл), я бы посоветовал пока эту затею оставить.


 
jack128 ©   (2003-03-30 18:04) [2]

Ihor Osov"yak © (30.03.03 14:59)
Если чесно не совсем понятно. Ссылку не дадите, то теме?


 
jack128 ©   (2003-03-30 18:32) [3]

Сейчас скомпилировал с пакетами : все работает.
А вообще их (пакетов) использование чем страшным черевато?



Страницы: 1 вся ветка

Текущий архив: 2003.04.10;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.017 c
1-30432
Songoku
2003-03-30 16:01
2003.04.10
Помогите!!! Если я создал несколько RadioButton как мне создать..


1-30431
klyonov
2003-03-29 08:27
2003.04.10
Насчет Drag&Dock


1-30384
multik
2003-03-29 21:52
2003.04.10
Привет всем!!! Из bmp сделать ico


7-30626
xfrost
2003-02-16 11:45
2003.04.10
Ждущий режим


14-30513
Феликс
2003-03-26 02:07
2003.04.10
Гы-гы! Надо же! И такое бывает.