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

Вниз

DLL вызывает процедуру в основной проге...   Найти похожие ветки 

 
Dimedrol   (2001-12-22 13:30) [0]

Коллеги, не подскажете как можно из ДЛЛ запустить процедуру главной программы (допустим WriteHello;), дождаться окончания ее работы и затем продолжить свою работу... ?


 
brkut   (2001-12-22 17:01) [1]

Zdrastvuite, izvinite za latin,

mozhno peredat v dll proceduru adres tvojei funkciji:

DLL

type
UserProc = procedure;
procedure StartUserProc(Proc: UserProc);
begin
showmessage("DLL stuff");
Proc;
showmessage("Again DLL stuff");
end;
exports
StartUserProc;
begin
end.


Main

type
UserProc = procedure;

procedure StartUserProc(proc: UserProc); StdCall;external "Project1.dll";
procedure Test;
begin
showmessage("Application stuff");
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
StartUserProc(@Test);
end;


Vsio kazhetsia rabotajet, no est bug - Test procedura pochemu to zapuskajetsa dva raza. Pochemu neznaju, no chotel bi uznat ...
any ideas ?

Eshchio navernoje mozhno zapustyt application proceduru vizivaja WM.
No, pochemu to SendMessage(LoadLibrary("my.dll"), MY_MESSAGE, wparam, lparam) nesrabotalo :(


 
Dimedrol   (2001-12-22 19:42) [2]

Решение конечно интересное, но у меня будет 1 проблема...
Я пишу плагины (вот из-за чего все это ;-))
Так что я заранее не могу знать какая ДЛЛ-ка будет вызывать
процедуру в основной программе, так что строка
procedure StartUserProc(proc: UserProc); StdCall;external "Project1.dll";

не сработает, т.к. этого -> "Project1.dll" не будет...


 
Иван Шихалев   (2001-12-22 19:54) [3]

Ё-моё. А callback чем не устраивает? Благо в Pascal есть такая замечательная вещь как процедурные типы.


 
brkut   (2001-12-23 13:19) [4]

Nu v takom sluchae, vsio zavisit ot konkretnovo prilozhenija.
Developeri tebe dolzhni dat SDK, o tam uzhe vsio budet jasno ...

nu koroche tebe nado
MainApp handle, togda ti smozhesh ejo kontrolerovat cherez windows messages ... (mozhesh posmotret kak eto delajetsia v Winampe)

udachi,
Ainis



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

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

Наверх




Память: 0.48 MB
Время: 0.006 c
3-28444
Kozhanov
2001-12-07 12:57
2002.01.10
Как


14-28540
savva
2001-11-15 12:28
2002.01.10
Поздравляем сегодня человека с ником Jey - у него сегодня день ВАРЕНЬЯ!!! (и подружнее товариши:)))


3-28427
Polar Bear
2001-12-07 18:16
2002.01.10
Загрузка-выгрузка Interbase (local) вместе с программой


4-28557
vovan1
2001-11-08 18:35
2002.01.10
CreateProcess


3-28419
Denis Proshkin
2001-12-06 15:41
2002.01.10
фильтрация по Date